android关于购物车listview加减按钮监听
我用vieholder按完加减跟新完数据后 更新数据是对的 但是跟新的itme不对 我刚觉viewholder记不住position的原因
想不用viewholder 但是太卡 我该怎么做 我是学渣一枚 求大神指导 程序都改蒙了 有不规范的 求大神指出来
@Override
public View getView(int position,View convertView, ViewGroup parent) {
data=mlist.get(position);
Log.i("wu", ""+position);
//重新创建view 不做优化
// View view=minflater.inflate(R.layout.buycar_thing_list,null);
// ImageView buycar_image=(ImageView)view.findViewById(R.id.buycar_thingimage);
// TextView thingname=(TextView) view.findViewById(R.id.buycar_thingname);
// TextView thingvalue=(TextView) view.findViewById(R.id.bugcar_thingvalue);
// TextView num=(TextView) view.findViewById(R.id.bugcar_thingnumber);
// ImageView image_change=(ImageView) view.findViewById(R.id.buycar_sth_change);
// ImageView image_reduce=(ImageView) view.findViewById(R.id.buycar_reduce);
// TextView value_xiaoji=(TextView) view.findViewById(R.id.bugcar_thingvalue_two);
// ImageView image_add=(ImageView)view.findViewById(R.id.buycar_add);
// buycar_image.setImageResource(data.ImageResId);
// thingname.setText(data.thingbuycar_name);
// thingvalue.setText(data.thingbuycar_value);
// buycar_image.setBackgroundResource(data.ImageResId);
// thingname.setText(data.thingbuycar_name);
// thingvalue.setText(data.thingbuycar_value);
// num.setText(data.thingbuycar_num);
// //选择判断
// if(data.thingbuycar_or){
// image_change.setImageResource(R.drawable.pay_and_delivery_unchecked);
// value_xiaoji.setText("0.00");
// }else{
// double d_value=Double.parseDouble(data.thingbuycar_value);
// double d_num=Double.parseDouble(data.thingbuycar_num);
// double d_xiaoji=d_value*d_num/1.00;
// DecimalFormat df = new DecimalFormat("0.00");
// String s=df.format(d_xiaoji);
// value_xiaoji.setText(s);
// }
// if(data.thingbuycar_num!="1"){
// image_reduce.setImageResource(R.drawable.shopping_cart_product_num_reduce);
// }
// MyListener mylistener_add=new MyListener(position,1);
// MyListener mylistener_reduce=new MyListener(position,2);
// MyListener mylistener_change=new MyListener(position,3);
// image_add.setOnClickListener(mylistener_add);
// image_reduce.setOnClickListener(mylistener_reduce);
// image_change.setOnClickListener(mylistener_change);
// return view;
MyListener mylistener_add=new MyListener(position,1);
MyListener mylistener_reduce=new MyListener(position,2);
MyListener mylistener_change=new MyListener(position,3);
if(convertView==null){
viewHolder=new viewHolder();
vae=convertView=minflater.inflate(R.layout.buycar_thing_list, null);
viewHolder.image=(ImageView) convertView.findViewById(R.id.buycar_thingimage);
viewHolder.name=(TextView) convertView.findViewById(R.id.buycar_thingname);
viewHolder.value=(TextView) convertView.findViewById(R.id.bugcar_thingvalue);
viewHolder.num=(TextView) convertView.findViewById(R.id.bugcar_thingnumber);
viewHolder.image_change=(ImageView) convertView.findViewById(R.id.buycar_sth_change);
viewHolder.image_reduce=(ImageView) convertView.findViewById(R.id.buycar_reduce);
viewHolder.value_xiaoji=(TextView) convertView.findViewById(R.id.bugcar_thingvalue_two);
viewHolder.image_add=(ImageView)convertView.findViewById(R.id.buycar_add);
convertView.setTag(viewHolder);
}else{
viewHolder=(viewHolder) convertView.getTag();
}
viewHolder.image.setBackgroundResource(data.ImageResId);
viewHolder.name.setText(data.thingbuycar_name);
viewHolder.value.setText(data.thingbuycar_value);
viewHolder.num.setText(data.thingbuycar_num);
Log.i("wu", "我就不信了"+position);
//选择判断
if(data.thingbuycar_or){
viewHolder.image_change.setImageResource(R.drawable.pay_and_delivery_unchecked);
viewHolder.value_xiaoji.setText("0.00");
}else{
double d_value=Double.parseDouble(data.thingbuycar_value);
double d_num=Double.parseDouble(data.thingbuycar_num);
double d_xiaoji=d_value*d_num/1.00;
DecimalFormat df = new DecimalFormat("0.00");
String s=df.format(d_xiaoji);
viewHolder.value_xiaoji.setText(s);
// System.out.println(d_num+" "+d_value+" "+d_xiaoji);
// String s=String.valueOf(d_xiaoji);
// System.out.println(s);
}
if(data.thingbuycar_num!="1"){
viewHolder.image_reduce.setImageResource(R.drawable.shopping_cart_product_num_reduce);
}
viewHolder.image_add.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
viewHolder.image_reduce.setImageResource(R.drawable.shopping_cart_product_num_reduce);
// double d_value=Double.parseDouble(data.thingbuycar_value);
// double d_num=Double.parseDouble(data.thingbuycar_num);
// double d_xiaoji=d_value*d_num/1.00;
// DecimalFormat df = new DecimalFormat("0.00");
// String s=df.format(d_xiaoji);
viewHolder.value_xiaoji.setText("5");
}});
viewHolder.image_reduce.setOnClickListener(mylistener_reduce);
viewHolder.image_change.setOnClickListener(mylistener_change);
return convertView;
}
private class viewHolder{
private ImageView image;
private TextView name;
private TextView value;
private TextView num;
private TextView value_xiaoji;
private ImageView image_change;
private ImageView image_reduce;
private ImageView image_add;
}
private class MyListener implements OnClickListener{
int mposition;
int change;
public MyListener(int mposition,int change){
this.mposition=mposition;
this.change=change;
}
public void updata_xiaoji(int mposition){
viewHolder.value_xiaoji.setTag(mposition);
Log.i("wu", "真的"+viewHolder.value_xiaoji.getTag());
double d_value=Double.parseDouble(mlist.get(mposition).thingbuycar_value);
double d_num=Double.parseDouble(mlist.get(mposition).thingbuycar_num);
double d_xiaoji=d_value*d_num/1.00;
DecimalFormat df = new DecimalFormat("0.00");
String s=df.format(d_xiaoji);
viewHolder.value_xiaoji.setText(s);
}
@Override
public void onClick(View v) {
String Snum=null;
int mnumber=(int)Double.parseDouble(mlist.get(mposition).thingbuycar_num);
switch (change) {
//加
case 1:
viewHolder.image_add.setTag(mposition);
viewHolder.image_change.setTag(mposition);
viewHolder.image_reduce.setTag(mposition);
viewHolder.image_reduce.setImageResource(R.drawable.shopping_cart_product_num_reduce);
mnumber++;
Snum=""+mnumber;
mlist.get(mposition).thingbuycar_num=Snum;
viewHolder.num.setText(Snum);
Log.i("wu", ""+viewHolder.image_add.getTag());
updata_xiaoji(mposition);
Log.i("wu", ""+mposition);
break;
case 2:
//减法
viewHolder.image_add.setTag(mposition);
viewHolder.image_change.setTag(mposition);
viewHolder.image_reduce.setTag(mposition);
if(mnumber>1){
mnumber--;
if(mnumber==1){
viewHolder.image_reduce.setImageResource(R.drawable.shopping_cart_product_num_reduce_disable);
}
Snum=""+mnumber;
mlist.get(mposition).thingbuycar_num=Snum;
viewHolder.num.setText(Snum);
}
updata_xiaoji(mposition);
Log.i("wu", ""+mposition);
break;
case 3:
//默认false 小计
viewHolder.image_add.setTag(mposition);
viewHolder.image_change.setTag(mposition);
viewHolder.image_reduce.setTag(mposition);
if(mlist.get(mposition).thingbuycar_or){
viewHolder.image_change.setImageResource(R.drawable.pay_and_delivery_fast_checked);
updata_xiaoji(mposition);
mlist.get(mposition).thingbuycar_or=false;
}else{![图片说明](https://img-ask.csdn.net/upload/201510/22/1445514565_269498.png)
viewHolder.image_change.setImageResource(R.drawable.pay_and_delivery_unchecked);
viewHolder.value_xiaoji.setText("0.00");
mlist.get(mposition).thingbuycar_or=true;
}
break;
}
}
}
}