SubAdapter
public class SubAdapter extends RecyclerView.Adapter<SubAdapter.SubViewHolder> { Context context; ArrayList<GouWu.DataBean> list; private ShangPinAdapter shangPinAdapter; public SubAdapter(Context context, ArrayList<GouWu.DataBean> list) { this.context = context; this.list = list; } public void shuaxin(){ notifyDataSetChanged(); } private SJSelect sjSelect; public void setSjSelected(SJSelect sjSelect) { this.sjSelect = sjSelect; } public interface SJSelect{ void sjselect(); } private Addjianlistenter addjianlistenter; public void setAddjianlistenter(Addjianlistenter addjianlistenter) { this.addjianlistenter = addjianlistenter; } public interface Addjianlistenter{ void addjianlistenter(); } @NonNull @Override public SubViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.shangjia_layout, parent, false); SubViewHolder subViewHolder = new SubViewHolder(view); return subViewHolder; } @Override public void onBindViewHolder(@NonNull final SubViewHolder holder, final int position) { holder.shangjia_checkbox.setChecked(list.get(position).isSelect()); holder.shangjia_name.setText(list.get(position).getSellerName()); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context,LinearLayoutManager.VERTICAL,false); shangPinAdapter = new ShangPinAdapter(context, (ArrayList<GouWu.DataBean.ListBean>) list.get(position).getList()); holder.shangjia_recyc.setLayoutManager(linearLayoutManager); holder.shangjia_recyc.setAdapter(shangPinAdapter); holder.shangjia_checkbox.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { list.get(position).setSelect(holder.shangjia_checkbox.isChecked()); for (GouWu.DataBean.ListBean listBean:list.get(position).getList()) { if(holder.shangjia_checkbox.isChecked()){ listBean.setSelected(1); }else{ listBean.setSelected(0); } } sjSelect.sjselect(); shuaxin(); } }); shangPinAdapter.setSpSelected(new ShangPinAdapter.SPSelected() { @Override public void selected() { boolean bs = true; for(GouWu.DataBean.ListBean listBean:list.get(position).getList()){ if(listBean.getSelected() == 0) { bs = false; } } list.get(position).setSelect(bs); sjSelect.sjselect(); shuaxin(); } }); shangPinAdapter.setAddjianselected(new ShangPinAdapter.addjianselected() { @Override public void addjianselect() { addjianlistenter.addjianlistenter(); } }); } @Override public int getItemCount() { return list.size(); } class SubViewHolder extends RecyclerView.ViewHolder{ private final CheckBox shangjia_checkbox; private final TextView shangjia_name; private final RecyclerView shangjia_recyc; public SubViewHolder(View itemView) { super(itemView); shangjia_checkbox = itemView.findViewById(R.id.shangjia_checkbox); shangjia_name = itemView.findViewById(R.id.shangjia_name); shangjia_recyc = itemView.findViewById(R.id.shangjia_recyc); } } }
shangjiaAdapter
public class ShangPinAdapter extends RecyclerView.Adapter<ShangPinAdapter.ShangPinViewHolder> { Context context; ArrayList<GouWu.DataBean.ListBean> list; public ShangPinAdapter(Context context, ArrayList<GouWu.DataBean.ListBean> list) { this.context = context; this.list = list; } //刷新 public void shuaxin(){ notifyDataSetChanged(); } private SPSelected spSelected; public interface SPSelected{ void selected(); } public void setSpSelected(SPSelected spSelected) { this.spSelected = spSelected; } private addjianselected addjianselected; public void setAddjianselected(ShangPinAdapter.addjianselected addjianselected) { this.addjianselected = addjianselected; } public interface addjianselected{ void addjianselect(); } @NonNull @Override public ShangPinViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.shangpin_layout, parent, false); ShangPinViewHolder shangPinViewHolder = new ShangPinViewHolder(view); return shangPinViewHolder; } @Override public void onBindViewHolder(@NonNull final ShangPinViewHolder holder, final int position) { if(list.get(position).getSelected() == 0){ holder.shangpin_checkbox.setChecked(false); }else{ holder.shangpin_checkbox.setChecked(true); } holder.shangpin_checkbox.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { boolean checked = holder.shangpin_checkbox.isChecked(); if(checked){ list.get(position).setSelected(1); }else{ list.get(position).setSelected(0); } spSelected.selected(); } }); holder.add_jian_qi.setnumber(list.get(position).getNum()); String images = list.get(position).getImages(); if(images != null && images.contains("|")){ String[] imageUrl = images.split("\\|"); Picasso.with(context).load(imageUrl[0]).into(holder.shangpin_image); }else{ Picasso.with(context).load(images).into(holder.shangpin_image); } holder.shangpin_price.setText(list.get(position).getPrice()*list.get(position).getNum()+""); //加 holder.add_jian_qi.setAdd_nums(new AddJianQi.Add_Nums() { @Override public void add(int add) { list.get(position).setNum(add); addjianselected.addjianselect(); shuaxin(); } }); //减 holder.add_jian_qi.setJian_num(new AddJianQi.Jian_Num() { @Override public void jian(int add) { list.get(position).setNum(add); addjianselected.addjianselect(); shuaxin(); } }); } @Override public int getItemCount() { return list.size(); } class ShangPinViewHolder extends RecyclerView.ViewHolder{ private final CheckBox shangpin_checkbox; private final ImageView shangpin_image; private final TextView shangpin_price; private final AddJianQi add_jian_qi; public ShangPinViewHolder(View itemView) { super(itemView); shangpin_checkbox = itemView.findViewById(R.id.shangpin_checkbox); shangpin_image = itemView.findViewById(R.id.shangpin_image); shangpin_price = itemView.findViewById(R.id.shangpin_price); add_jian_qi = itemView.findViewById(R.id.add_jian_qi); } } }