商品适配器
// 商家的全选
shopCarViewHolder.mCheckBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 判断商家是都选中
boolean isChecked = shopCarViewHolder.mCheckBox.isChecked();
// 赋值
list.get(i).setChecked(isChecked);
// 获取商家下的商品
List<ShopBean.DataBean.ListBean> listShop=list.get(i).getList();
// 判断商家是否选中
for (int i = 0; i < listShop.size(); i++) {
// 设置商品是否选中
listShop.get(i).setChecked(isChecked);
}
// 刷新适配器
notifyItemChanged(i);
}
});
////////////////////////////////////////////////////////////////////////////////////////////////////
点击商家下商品取消商家全选
商品适配器
// 点击取消商品,商家取消全选
shopCarItemViewHolder.mCheckBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 同商品适配器一样
boolean isChecked= shopCarItemViewHolder.mCheckBox.isChecked();
listShop.get(i).setChecked(isChecked);
// 接口回调把改变的值传给商品适配器
if (listener!=null){
listener.changeData(listShop);
}
}
});
// 传递接口
private OnCallBackListener listener;
public void setOnCallBackListener(OnCallBackListener listener){
this.listener=listener;
}
// 接口回调
public interface OnCallBackListener{
void changeData(List<ShopBean.DataBean.ListBean> listShop);
}
商家适配器
// 接收商品的变化
shopCarItemAdapter.setOnCallBackListener(new ShopCarItemAdapter.OnCallBackListener() {
@Override
public void changeData(List<ShopBean.DataBean.ListBean> listShop) {
int checkedNum=0;
for (int i = 0; i < listShop.size(); i++) {
boolean checked = listShop.get(i).isChecked();
if (checked){
checkedNum++;
}
}
// 商家下的商品
if (checkedNum==listShop.size()){// 全选
shopCarViewHolder.mCheckBox.setChecked(true);
}else {// 不是全选
shopCarViewHolder.mCheckBox.setChecked(false);
}
}
});