这个是我购物车的一个适配器,点击事件都在里面,但是就是我点击下图
第一或第二个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;
}
}