购物车(全选反选)

只是单独的全选反选,没有联动
Fragment

 //  商家的全选反选
        mCheckeBox =(CheckBox)view.findViewById(R.id.checkbox_all);
        mCheckeBox.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 定义布尔值,bean类里面添加
                boolean isChecked = mCheckeBox.isChecked();
                float allPrice=0;// 价格看准是什么类型
                int allNum=0;// 初始值
                // 遍历
                for (int i = 0; i < datas.size(); i++) {
                    datas.get(i).setChecked(isChecked);
                    List<ShopBean.DataBean.ListBean> list=datas.get(i).getList();
                    for (int j = 0; j < list.size(); j++) {
                        list.get(j).setChecked(isChecked);
                        if (isChecked){// 全选
                            float price=list.get(j).getPrice();
                            int num=list.get(j).getNum();
                            //计算总价
                            allPrice=allPrice+price*num;
                            // 计算总数量
                            allNum=allNum+num;
                        }else {// 不是全选
                            allPrice=0;
                            allNum=0;
                        }
                    }
                }
                // 价格不是整形,须要加引号
               mTvPrice.setText(allPrice+"");
               mTvMoney.setText("去结算("+allNum+")");
               // 设置数量
               shopCarAdapter.setList(datas);
            }
        });

商家适配器

    在onBindViewholder方法中
        //设置商家是否选中
        获取复选框控件,
        shopCarViewHolder.mCheckBox.setChecked(list.get(i).isChecked());

商品适配器

// 商品是否选中
            // 复选框和自定义布局
           mCheckBox=(CheckBox)itemView.findViewById(R.id.checkbox);
           mShopCarAddView=(ShopCarAddView)itemView.
                    findViewById(R.id.shop_car_view);
         // 商品是否选中
        shopCarItemViewHolder.mCheckBox.setChecked(listShop.get(i).isChecked());
        // 传递数量
        shopCarItemViewHolder.mShopCarAddView.setNum(listShop.get(i).getNum());

自定义布局

 // 初始化
    private void init(Context context) {
        View view=View.inflate(context,R.layout.shop_car_add,null);
        mEdit = (EditText)view.findViewById(R.id.ed_shop);
        addView(view);
    }

    public void setNum(int num) {
         mEdit.setText(num+"");
    }

猜你喜欢

转载自blog.csdn.net/Ye_DaXian/article/details/89055748
今日推荐