我的列表视图没有显示其内容

时间:2017-02-15 07:01:23

标签: java android

以下是MainActivity的代码 如何查看listview产品请尽快建议我

public class ProductList extends AppCompatActivity {
public static ArrayList<ItemProductList> values1=new ArrayList<ItemProductList>();
ListView list_productlist;
Context context = this;
public ItenProductAdapter mAdapter;
String category,name1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_product_list);
    list_productlist = (ListView) findViewById(R.id.list_productlist);
    category=getIntent().getStringExtra("category");
    name1=getIntent().getStringExtra("name");
    loadJSON();
    mAdapter= new ItenProductAdapter(context,values1);
    list_productlist.setAdapter(mAdapter);
}

private void loadJSON() {
    StringRequest jsonObjReq = new StringRequest(Request.Method.POST,
            "http://arshinfosystems.co.in/demo/AoneRubber/productlist.php",
            new Response.Listener<String>() {


                @Override
                public void onResponse(String response) {
                    try {
                        JSONObject jObject = new JSONObject(response);
                        JSONArray jsonArray = jObject.getJSONArray("cart");
                        for (int i = 0; i < jsonArray.length(); i++) {

                            JSONObject jbjct = jsonArray.getJSONObject(i);
                            ItemProductList itemListModel = new ItemProductList();
                            itemListModel.thickness1 = jbjct.getString("thickness");
                            itemListModel.id1 = jbjct.getString("id");
                            itemListModel.price1 = jbjct.getString("price");
                            itemListModel.category1 = jbjct.getString("category");
                            itemListModel.name1=jbjct.getString("name");
                            itemListModel.sr_no=jbjct.getString("sr_no");
                            values1.add(itemListModel);
                        }


                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {

            Toast.makeText(ProductList.this, error.toString(), Toast.LENGTH_SHORT).show();

        }
    }) {
        @Override
        protected Map<String, String> getParams() {
            Map<String, String> params = new HashMap<String, String>();
            params.put("category", category);
            params.put("name", name1);
            return params;
        }
    };
    jsonObjReq.setRetryPolicy(new DefaultRetryPolicy(50000,
            DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
            DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
    RequestQueue requestQueue = Volley.newRequestQueue(this);
    requestQueue.add(jsonObjReq);
  }
}

以下是Adapter的代码 如何查看listview产品请尽快给我建议

public class ItenProductAdapter extends BaseAdapter {
public static ArrayList<ItemProductList> list1;
String idValues = "";
Context context;
public static Integer total;
Bitmap mIcon11 = null;
ViewHolder holder;

public ItenProductAdapter(Context context, ArrayList<ItemProductList> list) {
    super();
    this.list1 = list;
    this.context = context;


}

@Override
public int getCount() {
    return 0;
}

@Override
public Object getItem(int position) {
    return null;
}

@Override
public long getItemId(int position) {
    return 0;
}
static class ViewHolder {
    TextView txt_sr_no;
    TextView txt_thickness;
    TextView txt_rates;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {

        holder=new ViewHolder();
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        convertView = inflater.inflate(R.layout.product_list_item, null);

        holder.txt_sr_no= (TextView) convertView.findViewById(R.id.txt_sr_no);
        holder.txt_thickness= (TextView) convertView.findViewById(R.id.txt_thickness);
        holder.txt_rates= (TextView) convertView.findViewById(R.id.txt_rates);

        convertView.setTag(holder);


    } else {
        holder = (ViewHolder) convertView.getTag();
    }
    holder.txt_sr_no.setText(list1.get(position).sr_no+")");
    holder.txt_thickness.setText(""+ list1.get(position).thickness1);
    holder.txt_rates.setText("RS "+list1.get(position).price1);




    return convertView;
  }
}

4 个答案:

答案 0 :(得分:2)

在您的代码方法中,getCount()返回0.将其更改为

public int getCount() {
    return list.size();
}

BTW最好扩展ArrayAdapter。

答案 1 :(得分:0)

您的适配器的getCount功能始终返回没有项目

更改此

@Override
public int getCount() {
    return 0;
}

这样的事情

@Override
public int getCount() {
    if (list1 != null) {
        return list1.size();
    }
    return 0;
}

答案 2 :(得分:0)

试试这个

 @Override
                public void onResponse(String response) {
                    try {
                        JSONObject jObject = new JSONObject(response);
                        JSONArray jsonArray = jObject.getJSONArray("cart");
                        for (int i = 0; i < jsonArray.length(); i++) {

                            JSONObject jbjct = jsonArray.getJSONObject(i);
                            ItemProductList itemListModel = new ItemProductList();
                            itemListModel.thickness1 = jbjct.getString("thickness");
                            itemListModel.id1 = jbjct.getString("id");
                            itemListModel.price1 = jbjct.getString("price");
                            itemListModel.category1 = jbjct.getString("category");
                            itemListModel.name1=jbjct.getString("name");
                            itemListModel.sr_no=jbjct.getString("sr_no");
                            values1.add(itemListModel);
                            }
                       mAdapter.setList(values1);
                       mAdapter.notifyDataSetChanged();
                       }   

适配器类

public class ItenProductAdapter extends BaseAdapter {
public static ArrayList<ItemProductList> list1;
String idValues = "";
Context context;
public static Integer total;
Bitmap mIcon11 = null;
ViewHolder holder;

public ItenProductAdapter(Context context, ArrayList<ItemProductList> list) {
    super();
    this.list1 = list;
    this.context = context;
}

public void setList(ArrayList<ItemProductList> list){
    this.list1 = list;
}


@Override
public int getCount() {
    return list1.size();
}

@Override
public Object getItem(int position) {
    return null;
}

@Override
public long getItemId(int position) {
    return 0;
}
static class ViewHolder {
    TextView txt_sr_no;
    TextView txt_thickness;
    TextView txt_rates;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {

        holder=new ViewHolder();
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        convertView = inflater.inflate(R.layout.product_list_item, null);

        holder.txt_sr_no= (TextView) convertView.findViewById(R.id.txt_sr_no);
        holder.txt_thickness= (TextView) convertView.findViewById(R.id.txt_thickness);
        holder.txt_rates= (TextView) convertView.findViewById(R.id.txt_rates);

        convertView.setTag(holder);


    } else {
        holder = (ViewHolder) convertView.getTag();
    }
    holder.txt_sr_no.setText(list1.get(position).sr_no+")");
    holder.txt_thickness.setText(""+ list1.get(position).thickness1);
    holder.txt_rates.setText("RS "+list1.get(position).price1);




    return convertView;
  }
}

答案 3 :(得分:0)

试试这个

6

然后是onResponse

setTimeout