ListView Android无法显示项目

ListView Android无法显示项目,android,json,listview,Android,Json,Listview,我刚刚尝试了自定义Listview android解析JSON(JSON没有问题),这对我来说很奇怪,因为我可以获取项目,但是Listview没有显示项目,实际上我很困惑。我已使用using方法Toast进行了检查,它会烘烤项目,但无法显示,我的来源如下: ListView适配器: import java.net.URL; import java.util.ArrayList; import android.app.Activity; import android.content.Contex

我刚刚尝试了自定义Listview android解析JSON(JSON没有问题),这对我来说很奇怪,因为我可以获取项目,但是Listview没有显示项目,实际上我很困惑。我已使用using方法Toast进行了检查,它会烘烤项目,但无法显示,我的来源如下: ListView适配器:

import java.net.URL;
import java.util.ArrayList;

import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class ListViewAdapter extends BaseAdapter{
    private static ArrayList<ItemClass> DataProcessorResult;
    private LayoutInflater myInflater;
    Context mycontext;

    public ListViewAdapter(Context context, ArrayList<ItemClass> results) {
        DataProcessorResult = results;
        myInflater = LayoutInflater.from(context);
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        //Log.d("count", String.valueOf(DataProcessorResult.size()));
        return DataProcessorResult.size();
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return DataProcessorResult.get(position);
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }   

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) 
    { 
        final ViewHolder holder; 
        final Context mycontext=parent.getContext();       

        if(convertView == null) {
            convertView = myInflater.inflate(R.layout.custom_viewproduct, null);
            holder = new ViewHolder();
            holder.txtItemCode = (TextView) convertView.findViewById(R.id.title);
            holder.txtHarga = (TextView) convertView.findViewById(R.id.harga);
            holder.imgitem= (ImageView) convertView.findViewById(R.id.imgitem);
            convertView.setTag(holder);            
        }else{
            holder = (ViewHolder) convertView.getTag();
        }

        holder.txtItemCode.setText(DataProcessorResult.get(position).getTitle());
        holder.txtHarga.setText(DataProcessorResult.get(position).getHarga());

        Toast.makeText(mycontext, DataProcessorResult.get(position).getTitle(), Toast.LENGTH_SHORT).show();

        if (position % 2 == 1) {convertView.setBackgroundColor(Color.WHITE);} else {convertView.setBackgroundColor(Color.rgb(208,212,208)); }        
        return convertView;
    } 
    static class ViewHolder { 
        TextView txtItemCode;
        TextView txtHarga;
        TextView txtSize;
        TextView txtPrice;
        ImageView imgitem;
    }

}
import java.net.URL;
导入java.util.ArrayList;
导入android.app.Activity;
导入android.content.Context;
导入android.graphics.Color;
导入android.util.Log;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.BaseAdapter;
导入android.widget.ImageView;
导入android.widget.TextView;
导入android.widget.Toast;
公共类ListViewAdapter扩展了BaseAdapter{
私有静态ArrayList DataProcessorResult;
私人充气机;
语境;
公共ListViewAdapter(上下文、ArrayList结果){
DataProcessorResult=结果;
myInflater=LayoutInflater.from(上下文);
}
@凌驾
public int getCount(){
//TODO自动生成的方法存根
//Log.d(“count”,String.valueOf(DataProcessorResult.size());
返回DataProcessorResult.size();
}
@凌驾
公共对象getItem(int位置){
//TODO自动生成的方法存根
返回DataProcessorResult.get(位置);
}
@凌驾
公共长getItemId(int位置){
//TODO自动生成的方法存根
返回位置;
}   
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图)
{ 
最终持票人;
final Context mycontext=parent.getContext();
if(convertView==null){
convertView=myInflater.inflate(R.layout.custom_viewproduct,null);
holder=新的ViewHolder();
holder.txtItemCode=(TextView)convertView.findViewById(R.id.title);
holder.txtHarga=(TextView)convertView.findViewById(R.id.harga);
holder.imgitem=(ImageView)convertView.findViewById(R.id.imgitem);
convertView.setTag(支架);
}否则{
holder=(ViewHolder)convertView.getTag();
}
holder.txtItemCode.setText(DataProcessorResult.get(position.getTitle());
holder.txtHarga.setText(DataProcessorResult.get(position.getHarga());
Toast.makeText(mycontext,DataProcessorResult.get(position).getTitle(),Toast.LENGTH_SHORT).show();
if(位置%2==1){convertView.setBackgroundColor(Color.WHITE);}else{convertView.setBackgroundColor(Color.rgb(208212208));}
返回视图;
} 
静态类视图持有者{
TextView txtItemCode;
TextView-txtHarga;
TextView-txtSize;
TextView txtPrice;
ImageView imgitem;
}
}
我的主要节目:

import java.util.ArrayList;
import java.util.Hashtable;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.Toast;

public class Saletab extends Activity {
    public static String BaseUrl="";
    final int PROGRESS_DIALOG=1;

    ViewConnection connection;

    ArrayList<ItemClass> itemlist=new ArrayList<ItemClass>();           
    ArrayList<ItemClass> arritem=new ArrayList<ItemClass>();    
    ArrayList<String> arritemcategory;

    ListView listview;
    //ListViewAdapter ListViewAdapter;

    @Override
    protected Dialog onCreateDialog(int id) {
        switch(id)
        {
        case PROGRESS_DIALOG:
            ProgressDialog progress =new ProgressDialog(this);
            progress.setMessage("Loading");
            progress.setTitle("Initializing Please Wait");          
            progress.setProgressStyle(ProgressDialog.STYLE_SPINNER);
            progress.setProgress(0);
            progress.setMax(100);           
            return progress;
        }
        return super.onCreateDialog(id);
    }

    private class GetDeptAyncTask extends AsyncTask<Hashtable<String,String>,Void,String> {             
        @Override
        protected void onPreExecute() {
            showDialog(PROGRESS_DIALOG);
            super.onPreExecute();
        } 
        @Override
        protected String doInBackground(Hashtable<String, String>... params) 
        {
            // TODO Auto-generated method stub
            Hashtable ht=params[0];         

            String json=HelperHttp.getJSONResponseFromURL(BaseUrl, ht);
            if(json!=null) {
                parseJsonString(itemlist,json); 
            }else{
                return "No internet access";
            }
            return json;
        }               

        protected void parseJsonString(ArrayList<ItemClass> itemlistjs,String json){
            try {               
                JSONObject jsonObj = new JSONObject(json);
                JSONArray array = jsonObj.getJSONArray("listitem");             

                ItemClass.setlength(array.length());

                for (int i=0;i<array.length();i++){
                    JSONObject js=array.getJSONObject(i);

                    ItemClass item=new ItemClass(js.getString("IdProperty"),
                            js.getString("NamaSales"),
                            js.getString("Title"),
                            js.getString("Kota"),
                            js.getString("Harga"),
                            js.getString("IdProperty"));
                    itemlistjs.add(item);
                }
            }catch (JSONException e) {
                e.printStackTrace();
            }
        }

        @Override
        protected void onPostExecute(String result){
            if(result=="SUCCESS")
            {
            }else{              
                JSONObject jObject = null;
                Context mContext = null;
                try {                   
                    jObject = new JSONObject(result);
                    JSONArray jArray = jObject.getJSONArray("listitem");

                    for (int i=0; i < jArray.length(); i++)
                    {                     
                        JSONObject oneObject=jArray.getJSONObject(i);
                        ItemClass item=new ItemClass(oneObject.getString("IdProperty"),
                                oneObject.getString("NamaSales"),
                                oneObject.getString("Title"),
                                oneObject.getString("Kota"),
                                oneObject.getString("Harga"),
                                oneObject.getString("IdProperty")); 
                        //Toast.makeText(getBaseContext(), oneObject.getString("Title"), Toast.LENGTH_SHORT).show();
                        //Log.d("helo",oneObject.getString("NamaSales"));
                        arritem.add(item);                          
                    }               
                    listview = (ListView) findViewById(R.id.listitem); 
                    Toast.makeText(getBaseContext(), arritem.get(0).toString(), Toast.LENGTH_SHORT).show();
                    listview.setAdapter(new ListViewAdapter(getBaseContext(), arritem));
                }catch (JSONException e) {
                    e.printStackTrace();
                }
            }
            removeDialog(PROGRESS_DIALOG);
            super.onPostExecute(result);
        }       
    }   

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_saletab);

        connection = new ViewConnection(getBaseContext());
        if (connection.isConnectingToInternet())
        {
            BaseUrl="http://92.68.228.81/dummy/item.php?status=J";
            executeAsyncTask();             
        }else {
            // Internet connection is not present
            LayoutInflater li = LayoutInflater.from(Saletab.this);
            final View inputdialogcustom = li.inflate(R.layout.activity_confirm_connection, null);              
            AlertDialog.Builder alert = new AlertDialog.Builder(Saletab.this);                                              
            alert.setView(inputdialogcustom);       

            alert.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
                @Override
                public void onClick(DialogInterface dialog, int which) {                                
                    System.exit(0);
                }
            }); 
            alert.show();
        }       
    }

    private void executeAsyncTask(){
        Hashtable<String,String> ht=new Hashtable<String,String>();
        GetDeptAyncTask async=new GetDeptAyncTask();
        Hashtable[] ht_array={ht};
        async.execute(ht_array);
    }

}
import java.util.ArrayList;
导入java.util.Hashtable;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入android.app.Activity;
导入android.app.AlertDialog;
导入android.app.Dialog;
导入android.app.ProgressDialog;
导入android.content.Context;
导入android.content.DialogInterface;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.util.Log;
导入android.view.LayoutInflater;
导入android.view.Menu;
导入android.view.MenuItem;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.AdapterView.OnItemClickListener;
导入android.widget.ListView;
导入android.widget.Toast;
公共类选项卡扩展活动{
公共静态字符串BaseUrl=“”;
最终int PROGRESS_DIALOG=1;
视图连接;
ArrayList itemlist=新建ArrayList();
ArrayList arritem=新的ArrayList();
ArrayList arritemcategory;
列表视图列表视图;
//ListViewAdapter ListViewAdapter;
@凌驾
受保护的对话框onCreateDialog(int id){
开关(id)
{
“案例进度”对话框:
ProgressDialog进度=新建ProgressDialog(此);
进度。设置消息(“加载”);
progress.setTitle(“正在初始化,请稍候”);
progress.setProgressStyle(ProgressDialog.STYLE\u微调器);
进度。设置进度(0);
进度。setMax(100);
返回进度;
}
返回super.onCreateDialog(id);
}
私有类GetDeptAyncTask扩展异步任务{
@凌驾
受保护的void onPreExecute(){
showDialog(进度对话框);
super.onPreExecute();
} 
@凌驾
受保护字符串doInBackground(哈希表…参数)
{
//TODO自动生成的方法存根
哈希表ht=参数[0];
字符串json=HelperHttp.getJSONResponseFromURL(BaseUrl,ht);
if(json!=null){
parseJsonString(itemlist,json);
}否则{
返回“无互联网接入”;
}
返回json;
}               
受保护的void parseJsonString(ArrayList itemlistjs,String json){
试试{
JSONObject jsonObj=新的JSONObject(json);
JSONArray数组=jsonObj.getJSONArray(“列表项”);
setlength(array.length());
对于(int i=0;i
我的自定义布局列表视图

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">    
    <ImageView 
        android:id="@+id/imgitem" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:background="@layout/round_border"
        android:src="@drawable/renticon"> 
    </ImageView> 
    <TextView 
        android:id="@+id/title" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_marginTop="2dp" 
        android:text="Coba"
        android:textSize="13sp" > 
    </TextView> 
    <TextView 
        android:id="@+id/harga" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_marginTop="2dp" 
        android:text="Coba"
        android:textSize="13sp" > 
    </TextView>

</RelativeLayout>


请帮帮我?谢谢。

我一眼就能看出

这两行是问题的原因。它们将listview移出屏幕

android:layout_above="@+id/header"
android:layout_below="@+id/footer"
将以上行更改为

android:layout_above="@+id/footer"
android:layout_below="@+id/header"
android:layout_above="@+id/footer"
android:layout_below="@+id/header"