购物车问题,look下,麻烦

这个是我购物车的一个适配器,点击事件都在里面,但是就是我点击下图图片说明
第一或第二个Item的加减号,只会作用在第三个Item里面,怎么解决,麻烦了
package com.example.adapter;
import java.util.List;
import com.example.database.RestaurantDataHelper;
import com.example.databsemanager.OrderManager;
import com.example.exampletest.MyApp;
import com.example.exampletest.R;
import com.example.model.Order;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

public class ShopcarAdapter extends BaseAdapter {
private List orderdata;
Context context;
LayoutInflater layoutInflater;
String sa,cname;
TextView count;
Order order;

private RestaurantDataHelper dh;
private SQLiteDatabase db;
public ShopcarAdapter(Context context,List<Order> orderdata){
    this.context = context;
    this.orderdata=orderdata;
    layoutInflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    dh = new RestaurantDataHelper(MyApp.getContext(),"restaurant.db",null,1);
    db = dh.getWritableDatabase();
}

@Override
public int getCount() {

    return orderdata.size();
}

@Override
public Object getItem(int position) {       
    return orderdata.get(position);
}

@Override
public long getItemId(int position) {       
    return position;
}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    View view;
    final ViewHolder viewHolder;
    if(convertView ==null){
        view =layoutInflater.inflate(R.layout.shopcaritem,null);
        viewHolder = new ViewHolder();
        viewHolder.image=(ImageView) view.findViewById(R.id.shop_car_img);
        viewHolder.name=(TextView) view.findViewById(R.id.shop_car_name);
        viewHolder.before_p=(TextView) view.findViewById(R.id.before_p);
        viewHolder.prices=(TextView) view.findViewById(R.id.shop_car_prices);
        count=(TextView) view.findViewById(R.id.shop_car_num);
        viewHolder.add=(Button) view.findViewById(R.id.shop_car_add);
        viewHolder.sub=(Button) view.findViewById(R.id.shop_car_sub);   
        view.setTag(viewHolder);
    }else{
        view=convertView;
        viewHolder=(ViewHolder) view.getTag();
    }
    viewHolder.image.setImageResource(orderdata.get(position).getOimgurl());
    viewHolder.name.setText(orderdata.get(position).getOname());
    viewHolder.before_p.setText("价格为:¥");
    viewHolder.prices.setText(String.valueOf(orderdata.get(position).getOprices()));
    count.setText(String.valueOf(orderdata.get(position).getOcount()));

    viewHolder.add.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v) {
             String sa=count.getText().toString();
             int ia=Integer.parseInt(sa)+1;              
             //对该商品对应的数据库记录进行数量增加的操作
             order = orderdata.get(position);
             cname=order.getOname();
             count.setText(String.valueOf(ia));
             new OrderManager().uddateOrder(db,ia,cname);                        
        }       
    });

    viewHolder.sub.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {       
            String ss= count.getText().toString();
            int i_count=Integer.parseInt(ss)-1;
            count.setText(String.valueOf(i_count<1? 1 : i_count));
            //对该商品对应的数据库记录进行数量减少的操作
            new OrderManager().uddateOrder(db,i_count,cname);


        }       
    });

    return view;
}

public final class ViewHolder{
ImageView image;
TextView name,before_p,prices;
Button add,sub;
}

}

你这应该是修改的数值只是针对了第三组的textView,我看你的代码中只有一个 count=(TextView) view.findViewById(R.id.shop_car_num);
那你前面两个的textView没有被实例化。你将前面两个textView实例化后,根据 List orderdata 里面被点击的是哪一个列表里面的“+”或者“-”来修改相应列表中的textView的值。