购物车 全选、反选、加减

Activity里

    //避免焦点强占
    mainCk.setOnCheckedChangeListener(null);
    mainCk.setOnClickListener(this);


    myBusinessAdapter.setOnBusinessClickListener(new MyBusinessAdapter.onBusinessClickListener() {
        @Override
        public void onCallBack() {
            boolean b=true;
            for (int i = 0; i <businesslist.size() ; i++) {
                boolean businessCheck = businesslist.get(i).getBusinessCheck();
                b=b&businessCheck;
                for (int j = 0; j <businesslist.get(i).getList().size() ; j++) {
                    boolean goodsCheck = businesslist.get(i).getList().get(j).getGoodsCheck();
                    b=b&goodsCheck;
                }
            }
            mainCk.setChecked(b);
            totalCount();
        }
    });


@Override
public void onClick(View v) {
    //全选
    for (int i = 0; i <businesslist.size() ; i++) {
        businesslist.get(i).setBusinessCheck(mainCk.isChecked());
        for (int j = 0; j <businesslist.get(i).getList().size() ; j++) {
            businesslist.get(i).getList().get(j).setGoodsCheck(mainCk.isChecked());
        }
    }
    //刷新
    myBusinessAdapter.notifyDataSetChanged();
    totalCount();
}



//计算总价
public void totalCount(){
    double b=0;
    for (int i = 0; i <businesslist.size() ; i++) {
        for (int j = 0; j <businesslist.get(i).getList().size() ; j++) {
            if (businesslist.get(i).getList().get(j).getGoodsCheck()){
                double price = businesslist.get(i).getList().get(j).getPrice();
                int number = businesslist.get(i).getList().get(j).getDefaultnumber();
                double v = number * price;
                b+=v;
            }
        }
    }
    mainText.setText("总价是:¥:"+b);
}

商家的适配器

接口回调
onBusinessClickListener onbusinessClickListener;

public interface onBusinessClickListener{
    public void onCallBack();
}
public void setOnBusinessClickListener(onBusinessClickListener onbusinessClickListener){
    this.onbusinessClickListener=onbusinessClickListener;
}

//设置商家标题

    helper.setText(R.id.business_title,item.getSellerName());
    businessView = helper.getView(R.id.business_recy);
    //商品的
    LinearLayoutManager manager=new LinearLayoutManager(mContext,LinearLayoutManager.VERTICAL,false);
    businessView.setLayoutManager(manager);
    myGoodsAdapter = new MyGoodsAdapter(R.layout.goods,item.getList());
    businessView.setAdapter(myGoodsAdapter);


    //避免焦点抢占
    //全选的
    final CheckBox businessCk= helper.getView(R.id.business_ck);
    businessCk.setOnCheckedChangeListener(null);
    businessCk.setChecked(item.getBusinessCheck());


    //点击goods里取消外边全选
    myGoodsAdapter.setOnGoodsClickListener(new MyGoodsAdapter.OnGoodsClickListener() {
        @Override
        public void onCallBack() {
            boolean b=true;
            for (int i = 0; i < item.getList().size(); i++) {
                boolean goodsCheck = item.getList().get(i).getGoodsCheck();
                b=b&goodsCheck;
            }
            businessCk.setChecked(b);
            myGoodsAdapter.notifyDataSetChanged();
            onbusinessClickListener.onCallBack();
        }
    });



    //点击商家条目选中里面的
    businessCk.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            for (int i = 0; i <item.getList().size() ; i++) {
                item.getList().get(i).setGoodsCheck(businessCk.isChecked());
            }
            item.setBusinessCheck(businessCk.isChecked());
            notifyDataSetChanged();
            onbusinessClickListener.onCallBack();
        }
    });

商品的适配器

接口回调

OnGoodsClickListener ongoodsClickListener;
public void setOnGoodsClickListener(OnGoodsClickListener ongoodsClickListener){
    this.ongoodsClickListener=ongoodsClickListener;
}
public interface OnGoodsClickListener{
    public void onCallBack();
}

//设置标题 价格

    helper.setText(R.id.goods_title, item.getTitle());
    helper.setText(R.id.goods_price, "¥:" + item.getPrice());
    ImageView goodsImg = helper.getView(R.id.goods_img);
    final String imageString = item.getImages();
    final String[] img = imageString.split("\\|");
    Glide.with(mContext).load(img[0]).into(goodsImg);

    //避免焦点强占
    //不提成全局 会错位
    final CheckBox goodsCheck = helper.getView(R.id.goods_ck);
    goodsCheck.setOnCheckedChangeListener(null);
    goodsCheck.setChecked(item.getGoodsCheck());


    //点击商家条目选中里面的
    goodsCheck.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            item.setGoodsCheck(isChecked);
            ongoodsClickListener.onCallBack();
        }
    });

    //加减器
    CaView caView = helper.getView(R.id.ca);
    caView.setonCallCalview(new CaView.OnCallCalview() {
        @Override
        public void add(int number) {
            item.setDefaultnumber(number);
            ongoodsClickListener.onCallBack();
        }

        @Override
        public void jian(int number) {
            item.setDefaultnumber(number);
            ongoodsClickListener.onCallBack();
        }
    });

自定义view的加减器

继承 LinearLayout
方法里:
View footView = LayoutInflater.from(context).inflate(R.layout.ca_layout, this);
//数量
String stringnumber = ca_text.getText().toString();
int number = Integer.parseInt(stringnumber);

    switch (v.getId()){
        case R.id.ca_jian:

            //减
            number--;
            if (number<0){
                number=0;
                ca_text.setText(String.valueOf(number));
            }
            ca_text.setText(String.valueOf(number));
            oncallCalview.jian(number);

            break;
        case R.id.ca_add:

            //加
            number++;
            ca_text.setText(String.valueOf(number));
            oncallCalview.add(number);

            break;
    }

接口回调
OnCallCalview oncallCalview;
public void setonCallCalview(OnCallCalview oncallCalview){
this.oncallCalview=oncallCalview;
}
public interface OnCallCalview{
public void add(int number);
public void jian(int number);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值