全选

-------------------------------------------- cb_01的点击事件-------------------------------------------------------

cb_01.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(cb_01.isChecked()){
                    for (int i = 0; i <news.getData().size() ; i++) {
                        news.getData().get(i).setOutchecked(true);
                        for (int j = 0; j <news.getData().get(i).getList().size() ; j++) {
                            news.getData().get(i).getList().get(j).setInnerchecked(true);
                        }
                    }
                }else {
                    for (int i = 0; i <news.getData().size() ; i++) {
                        news.getData().get(i).setOutchecked(false);
                        for (int j = 0; j <news.getData().get(i).getList().size() ; j++) {
                            news.getData().get(i).getList().get(j).setInnerchecked(false);
                        }
                    }

                }
                //总价的方法
                initzong();
               adapter.notifyDataSetChanged();
            }
        });

-----------------------------------------------------------------外层适配器------------------------------------------------------

holder.cb_02.setChecked(list.get(position).isOutchecked());
holder.cb_02.setText(list.get(position).getSellerName());
--------------------------------------------------条目控制商家-----------inneradapter--------------

//判断条目复选框的状态
 holder.cb_03.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //内部状态
                list.get(position).setInnerchecked(holder.cb_03.isChecked());
                onclickchangelisten.onchecked(holder.getLayoutPosition(),holder.cb_03.isChecked());
            }
        });





private onclickchangelisten onclickchangelisten;
   //向外提供方法
    public void setOnclickchangelisten(onclickchangelisten onclickchangelisten){
        this.onclickchangelisten=onclickchangelisten;
    }
    //条目的回调方法
    public interface onclickchangelisten{
        void onchecked(int layoutPosition, boolean checked);
    }




    --------------------------------------------------条目《===》商家----------outdapter--------------




        holder.cb_02.setOnClickListener(null);
        //商家选中控制里面的子条目
        holder.cb_02.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                boolean ischecked = holder.cb_02.isChecked();//定义商家的选中状态
                list.get(position).setOutchecked(ischecked);
                if (ischecked){
                    for (int i = 0; i < list.get(holder.getLayoutPosition()).getList().size(); i++) {
                        list.get(holder.getLayoutPosition()).getList().get(i).setInnerchecked(true);
                    }
                }else{
                    for (int i = 0; i < list.get(holder.getLayoutPosition()).getList().size(); i++) {
                        list.get(holder.getLayoutPosition()).getList().get(i).setInnerchecked(false);
                    }
                }
                onclickchangelisten.onitemchecked(holder.getLayoutPosition(),ischecked);
            }
        });





        //获取里层条目选中状态
        innerAdapter.setOnclickchangelisten(new innerAdapter.onclickchangelisten() {
            @Override
            public void onchecked(int layoutPosition, boolean checked) {
                //定义一个默认值
                boolean b=true;
                for (int i = 0; i <list.get(holder.getLayoutPosition()).getList().size() ; i++) {
                    boolean innerchecked = list.get(holder.getLayoutPosition()).getList().get(i).isInnerchecked();
                    b=(b&innerchecked);
                }
                //设置给商家
                holder.cb_02.setChecked(b);

                //设置给外层条目
                list.get(position).setOutchecked(b);
                onclickchangelisten.onchecked(holder.getLayoutPosition(),checked);
            }
        });






 private onclickchangelisten onclickchangelisten;
    //向外提供方法
    public void setOnclickchangelisten(onclickchangelisten onclickchangelisten){
        this.onclickchangelisten=onclickchangelisten;
    }
    //全选的商家接口回调
    public interface onclickchangelisten{
        void onchecked(int layoutPosition, boolean checked);//里层控制商家
        void onitemchecked(int layoutPosition, boolean ischecked);//商家控制里层
    }

---------------------------------------------------maintiivity-------------------------------------

//全选  来控制商家跟条目
                adapter.setOnclickchangelisten(new outAdapter.onclickchangelisten() {
                    @Override
                    public void onchecked(int layoutPosition, boolean checked) {
                        boolean b=true;
                        for (int i = 0; i < news.getData().size(); i++) {
                            boolean outchecked = news.getData().get(i).isOutchecked();
                            for (int j = 0; j < news.getData().get(i).getList().size(); j++) {
                                boolean innerchecked = news.getData().get(i).getList().get(j).isInnerchecked();
                                b=(b&outchecked&innerchecked);
                            }

                        }
                        cb_01.setChecked(b);
                        adapter.notifyDataSetChanged();

                    }

                    @Override
                    public void onitemchecked(int layoutPosition, boolean ischecked) {
                        //设置外层的选中状态
                        news.getData().get(layoutPosition).setOutchecked(ischecked);
                        boolean b=true;
                        for (int i = 0; i < news.getData().size(); i++) {
                            boolean outchecked = news.getData().get(i).isOutchecked();
                            for (int j = 0; j < news.getData().get(i).getList().size(); j++) {
                                boolean innerchecked = news.getData().get(i).getList().get(j).isInnerchecked();
                                b=(b&outchecked&innerchecked);
                            }
                        }
                        cb_01.setChecked(b);
                        adapter.notifyDataSetChanged();

                    }
                });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值