购物车单选 总价和结算 简单使用

**

先在第二个适配器写个接口回调不传数据和复选框状态点击事件调用

**

//设置回调接口方法 括号里实例化接口
public void setOnListListener(OnListListener onListListener){
    //接口返回值 this. 提上去
    this.onListListener = onListListener;
}

//设置集合接口
public interface OnListListener{
    //成功方法
    void success();
}

复选框点击事件调用

//内部类复选框状态值改变点击事件
    myViewHolder2.rb4.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
            //把b设置给集合状态值
            listBean.get(i).setChecked(b);
            //调用接口名
            onListListener.success();
            //复制这个集合接口回调 到第一个适配器
        }
    });

**

然后去第一个适配器 赋值第二个的接口改个名称+1 传集合 提上去 记得把赋值过来的接口重新删了重新提上去;

**

    //设置集合回调接口方法 括号里实例化接口
public void setOnListListener1(OnListListener1 onListListener1){
    //接口返回值 this. 提上去 记得把赋值过来的接口重新删了重新提上去;
    this.onListListener1 = onListListener1;
}
//设置集合接口
public interface OnListListener1{
    //成功方法 传上面封装的集合
    void success1(List<RvBean.DataBean> dataBean);
}

**

调用第一个适配器的接口回调传这个页面接口回调的集合

**

//调用接口回调 传集合
   rvAdapter4.setOnListListener(new RvAdapter4.OnListListener() {
       @Override
       public void success() {
       		//调用本页面的回调方法传集合
           onListListener1.success1(dataBean);
       }
   });

**

去设置第一个适配器的地方 调用第一个适配器里的回调接口

**

//在设置第一个适配器的地方写接口回调
            rvAdapter3.setOnListListener1(new RvAdapter3.OnListListener1() {
                @Override
                public void success1(List<RvBean.DataBean> dataBean) {
                //和全选逻辑一样改变个别 可以提方法这个单选
                    //直接定义小数点和整型初始值0
                    double priceAll = 0;
                    int num = 0;

                    //循环第一个集合
                    for (int i = 0; i < dataBean.size(); i++) {
                        //先获取第二个集合  返回值
                        List<RvBean.DataBean.ListBean> list = dataBean.get(i).getList();
                        //循环第二个集合
                        for (int j = 0; j < list.size(); j++) {
                            //加个判断集合封装的状态值
                            if(list.get(j).isChecked()){
                                //在把带b删了
                                //计算值先定义两个数初始值=0
                                //这两个数在+=集合里的价格和总数 *集合总数
                                priceAll += (list.get(j).getPrice()*list.get(j).getNum());
                                num += list.get(j).getNum();
                            }
                        }
                        //把刷新适配器和判断删了留下 赋值
                        //赋计算的值
                        zong.setText("总价:¥" + priceAll);
                        bt_jie.setText("结算(" + num + ")");
                    }
                }
            });

猜你喜欢

转载自blog.csdn.net/qq_43143884/article/details/83378612
今日推荐