首先勾选复选框按钮
ShopCartBean shopCartBean = list.get(i);
viewHolder.checkbox.setText(list.get(i).categoryName);
viewHolder.adapter.clear();
viewHolder.adapter.add(shopCartBean.shoppingCartList);
viewHolder.child_recycler.setAdapter(viewHolder.adapter);
viewHolder.adapter.notifyDataSetChanged();
viewHolder.checkbox.setChecked(shopCartBean.isChecked);
viewHolder.checkbox.setTag(shopCartBean);
viewHolder.checkbox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
List shoppingCartList = list.get(i).shoppingCartList;
ShopCartBean viewTag = (ShopCartBean) v.getTag();
CheckBox checkBox = (CheckBox) v;
if (checkBox.isChecked()){
viewTag.isChecked = true;
for (int j = 0; j < shoppingCartList.size(); j++) {
shoppingCartList.get(j).check = checkBox.isChecked();
}
viewHolder.adapter.notifyDataSetChanged();
}else {
viewTag.isChecked =false;
for (int j = 0; j < shoppingCartList.size(); j++) {
shoppingCartList.get(j).check = checkBox.isChecked();
}
viewHolder.adapter.notifyDataSetChanged();
}
priceAll();
}
});
viewHolder.adapter.setShoppingData(new ShoppingChildAdapter.ShoppingData() {
@Override
public void getData(int a) {
if (a>list.get(i).shoppingCartList.size()){
list.get(i).isChecked =true;
}else {
list.get(i).isChecked =false;
}
priceAll();
}
});
}
//全选反选
public void checkedAll(boolean isChecked){
for (int i = 0; i < list.size(); i++) {
list.get(i).isChecked = isChecked;
ShopCartBean shopCartBean = list.get(i);
for (int j = 0; j <list.get(i).shoppingCartList.size(); j++) {
shopCartBean.shoppingCartList.get(j).check = isChecked;
}
}
notifyDataSetChanged();
}
public void priceAll(){
int a= 0;
int b = 0;
double num = 0.0;
for (int i = 0; i < list.size(); i++) {
ShopCartBean shopCartBean = list.get(i);
for (int j = 0; j < list.get(i).shoppingCartList.size(); j++) {
b++;
ShopChildBean shopChildBean = shopCartBean.shoppingCartList.get(j);
if (shopChildBean.check){
num = shopChildBean.count*shopChildBean.price;
a++;
}
}
}
if (a>=b){
dataCall.dataCall(true);
}else {
dataCall.dataCall(false);
}
call.mCall(num,a);
notifyDataSetChanged();
}
public List<ShopCartBean> getList(){
return list;
}
@Override
public int getItemCount() {
return list.size();
}
public void clear() {
list.clear();
}
public void add(List<ShopCartBean> shopCartBeans) {
if (shopCartBeans!=null){
list.addAll(shopCartBeans);
}
}
public class ViewHolder extends RecyclerView.ViewHolder {
private final RecyclerView child_recycler;
private final ShoppingChildAdapter adapter;
private final CheckBox checkbox;
public ViewHolder(@NonNull View itemView) {
super(itemView);
checkbox = itemView.findViewById(R.id.checkbox);
child_recycler = itemView.findViewById(R.id.child_recycler);
child_recycler.setLayoutManager(new LinearLayoutManager(context,LinearLayoutManager.VERTICAL,false));
adapter = new ShoppingChildAdapter(context);
}
}
public interface Call{
void mCall(double a,int b);
}
private Call call;
public void setCall(Call call){
this.call = call;
}
public interface DataCall{
void dataCall(boolean a);
}
private DataCall dataCall;
public void setDataCall(DataCall dataCall){
this.dataCall = dataCall;
}