以下主要的关键代码:
private ArrayList<String> list;
//数据源,Adapter 要用到, 这个mList定义非常关键 private List<HashMap<String, String>> mList = null; public MyAdapter(Activity context, ArrayList<String> l){ c = context; list = l; mList = new ArrayList<HashMap<String, String>>(); if(null != list && list.size()>0){ for(int i=0;i<list.size();i++) { HashMap<String, String> hashMap = new HashMap<String, String>(); hashMap.put("number","0"); mList.add(hashMap); } } }
然后在 getView() 方法中,在
}else {
holder = (ViewHolderNew) view.getTag();
}
之后加上,这样一段:
holder.tvcount.setText(mList.get(pos).get("number")); holder.add.setOnClickListener(new CustomClickListener(pos)); holder.decrease.setOnClickListener(new CustomClickListener(pos));
紧接着,增加、减少按钮的点击事件,关键代码:
class CustomClickListener implements View.OnClickListener{ int position; public CustomClickListener(int pos) { position = pos; } @Override public void onClick(View view) { int curCount = Integer.parseInt(mList.get(position).get("number")); if(view.getId() == R.id.item_lv_add) { mList.get(position).put("number", "" + (curCount + 1)); notifyDataSetChanged(); }else if(view.getId() == R.id.item_lv_decrease) { if(curCount >0) { mList.get(position).put("number", "" + (curCount - 1)); notifyDataSetChanged(); } } } }