二级逻辑处理

首先在Activity中进行全选 价格联动
public class MainActivity extends BaseActivity implements IMainView {

private RecyclerView recy;
private List<ShowBean.ResultBean> result;
private HomePresenter homePresenter;
private CheckBox check;
private MyAdapterone myAdapterone;
private TextView sum;

@Override
int Layout() {
    return R.layout.activity_main;
}

@Override
void initView() {
    homePresenter = new HomePresenter();
    homePresenter.attachView(this);
    homePresenter.ShowPresneter(Constant.show);

    recy = (RecyclerView) findViewById(R.id.recy);
    check = (CheckBox) findViewById(R.id.check);
    sum = (TextView) findViewById(R.id.sum);

    LinearLayoutManager linearLayoutManager=new LinearLayoutManager(this);
    linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
    recy.setLayoutManager(linearLayoutManager);

    //全选
    check.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
             if (check.isChecked()){
                 for (int i = 0; i <result.size() ; i++) {
                      result.get(i).setFulei(true);
                     for (int j = 0; j < result.get(i).getShoppingCartList().size(); j++) {
                         result.get(i).getShoppingCartList().get(j).setZilei(true);
                     }
                 }
             }else {
                 for (int i = 0; i <result.size() ; i++) {
                     result.get(i).setFulei(false);
                     for (int j = 0; j < result.get(i).getShoppingCartList().size(); j++) {
                         result.get(i).getShoppingCartList().get(j).setZilei(false);
                     }
                 }
             }
             myAdapterone.notifyDataSetChanged();
        }
    });
}

@Override
void initData() {

}

@Override
public void Success(String data) {
    Gson gson = new Gson();
    ShowBean showBean = gson.fromJson(data, ShowBean.class);
    result = showBean.getResult();

    myAdapterone = new MyAdapterone(result,this);
    myAdapterone.one(new MyAdapterone.CallBackD() {
        @Override
        public void dianone() {
            boolean pp=true;
            int b=0;
            for (int i = 0; i <result.size() ; i++) {
                boolean fulei = result.get(i).isFulei();
                for (int j = 0; j <result.get(i).getShoppingCartList().size() ; j++) {
                    boolean zilei = result.get(i).getShoppingCartList().get(j).getZilei();

                    int price = result.get(i).getShoppingCartList().get(j).getPrice();
                    int onecount = result.get(i).getShoppingCartList().get(j).getOnecount();

                    pp=pp & fulei & zilei;

                    if (zilei){
                        b+=price * onecount;
                    }
                }
            }
            sum.setText(b+"");
            check.setChecked(pp);
        }
    });
    recy.setAdapter(myAdapterone);

}

@Override
protected void onDestroy() {
    super.onDestroy();
    homePresenter.detachView();

}

}

自定义加减器中进行接口回调
public class MyView extends LinearLayout {
private int a=1;
private final TextView tv;
private Call ca;

public MyView(Context context,  AttributeSet attrs) {
    super(context, attrs);
    View inflate = LayoutInflater.from(context).inflate(R.layout.myview, this);
    Button jia = inflate.findViewById(R.id.jia);
    Button jian = inflate.findViewById(R.id.jian);
    tv = inflate.findViewById(R.id.myview_tv);

    jia.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            a++;
            tv.setText(a+"");
            ca.aaa(a);
        }
    });

    jian.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            if (a>0){
                a--;
                tv.setText(a+"");
                ca.aaa(a);
            }
        }
    });


}
public  void setText(int i){
    a=i;
    tv.setText(i+"");
}

public interface Call{
    void aaa(int e);
}

public void callB(Call call){
    this.ca=call;
}

}

一级适配器中进行回调
public class ShoppingAdapter extends RecyclerView.Adapter {
private List<ShoppingBean.ResultBean> result;
private Context context;
private ShoppingAdapter2 shoppingAdapter2;
private CallBackD caone;

public ShoppingAdapter(List<ShoppingBean.ResultBean> result, Context context) {
    this.result = result;
    this.context = context;
}

@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    View inflate = LayoutInflater.from(context).inflate(R.layout.shoppingitem, null);
    Viewholder1 viewholder1 = new Viewholder1(inflate);
    return viewholder1;
}

@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, final int i) {
    final Viewholder1 viewholder1 = (Viewholder1) viewHolder;
    viewholder1.shopping_tv.setText(result.get(i).getCategoryName());
    viewholder1.item_check.setChecked(result.get(i).isFulei());

    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context);
    linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
    viewholder1.shopping_recy2.setLayoutManager(linearLayoutManager);

    shoppingAdapter2 = new ShoppingAdapter2(result.get(i).getShoppingCartList(), context);
    viewholder1.shopping_recy2.setAdapter(shoppingAdapter2);

    viewholder1.item_check.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (viewholder1.item_check.isChecked()) {
                for (int j = 0; j < result.get(i).getShoppingCartList().size(); j++) {
                    result.get(i).getShoppingCartList().get(j).setZilei(true);
                }
            } else {
                for (int j = 0; j < result.get(i).getShoppingCartList().size(); j++) {
                    result.get(i).getShoppingCartList().get(j).setZilei(false);
                }
            }
            shoppingAdapter2.notifyDataSetChanged();
        }
    });
    shoppingAdapter2.CallBack(new ShoppingAdapter2.CallBackData() {
        @Override
        public void dian() {
            boolean zx=true;
            for (int j = 0; j <result.get(i).getShoppingCartList().size() ; j++) {
                boolean zilei = result.get(i).getShoppingCartList().get(j).isZilei();
                zx=zx &zilei;
            }
            viewholder1.item_check.setChecked(zx);
            caone.dianone();
        }
    });

}

@Override
public int getItemCount() {
    return result.size();
}

public interface CallBackD{
    void dianone();
}

public void one(CallBackD callBackD){
      this.caone=callBackD;
}

public class Viewholder1 extends RecyclerView.ViewHolder {


    private final TextView shopping_tv;
    private final RecyclerView shopping_recy2;
    private final CheckBox item_check;

    public Viewholder1(@NonNull View itemView) {
        super(itemView);
        shopping_tv = itemView.findViewById(R.id.shopping_tv);
        shopping_recy2 = itemView.findViewById(R.id.shopping_recy2);
        item_check = itemView.findViewById(R.id.item_check);
    }
}

}

二级适配器的接口回调
public class ShoppingAdapter2 extends RecyclerView.Adapter {
private List<ShoppingBean.ResultBean.ShoppingCartListBean> shoppingCartList;
private Context context;

private CallBackData ji;

public ShoppingAdapter2(List<ShoppingBean.ResultBean.ShoppingCartListBean> shoppingCartList, Context context) {
    this.shoppingCartList = shoppingCartList;
    this.context = context;
}

@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    View inflate = LayoutInflater.from(context).inflate(R.layout.shoppingitem2, null);
    Viewholder1 viewholder1 = new Viewholder1(inflate);
    return viewholder1;
}

@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, final int i) {
    final Viewholder1 viewholder1 = (Viewholder1) viewHolder;
    viewholder1.item2_tv.setText(shoppingCartList.get(i).getCommodityName());
    viewholder1.item2_tv2.setText(shoppingCartList.get(i).getPrice() + "");
    viewholder1.item2_check.setChecked(shoppingCartList.get(i).isZilei());
    Glide.with(context).load(shoppingCartList.get(i).getPic()).into(viewholder1.item2_img);
    viewholder1.myview.callb(new MyView.Call() {
        @Override
        public void aaa(int e) {
            shoppingCartList.get(i).setOnecount(e);
            ji.dian();
        }
    });

    viewholder1.item2_check.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (viewholder1.item2_check.isChecked()) {
                shoppingCartList.get(i).setZilei(true);
                ji.dian();
            } else {
                shoppingCartList.get(i).setZilei(false);
                ji.dian();

            }
        }
    });

    viewholder1.item2_check.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            ji.dian();
        }
    });
}

@Override
public int getItemCount() {
    return shoppingCartList.size();
}

public interface CallBackData{
    void dian();
}
public void CallBack(CallBackData callBackData){
    this.ji=callBackData;
}
public class Viewholder1 extends RecyclerView.ViewHolder {


    private final TextView item2_tv;
    private final TextView item2_tv2;
    private final ImageView item2_img;
    private final CheckBox item2_check;
    private final MyView myview;

    public Viewholder1(@NonNull View itemView) {
        super(itemView);
        item2_tv = itemView.findViewById(R.id.item2_tv);
        item2_tv2 = itemView.findViewById(R.id.item2_tv2);
        item2_img = itemView.findViewById(R.id.item2_img);
        item2_check = itemView.findViewById(R.id.item2_check);
        myview = itemView.findViewById(R.id.myview);
    }
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值