whynofly 2016-05-30 13:42 采纳率: 0%
浏览 990

购物车问题,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;
}

}

  • 写回答

1条回答 默认 最新

  • LRHuoLang19 2016-06-12 01:51
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥20 关于#qt#的问题:Qt代码的移植问题
  • ¥50 求图像处理的matlab方案
  • ¥50 winform中使用edge的Kiosk模式
  • ¥15 关于#python#的问题:功能监听网页
  • ¥15 怎么让wx群机器人发送音乐
  • ¥15 fesafe材料库问题
  • ¥35 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化