商家的适配器
public class BuyAdapter extends RecyclerView.Adapter<BuyAdapter.BuyViewHolder> { Context context; List<GouBuyBean.DataBean> listbeans; private List<GouBuyBean.DataBean.ListBean> list; public BuyAdapter(Context context, List<GouBuyBean.DataBean> listbeans) { this.context = context; this.listbeans = listbeans; } 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 BuyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { View view = LayoutInflater.from(context).inflate(R.layout.buy_layout, viewGroup, false); BuyViewHolder buyViewHolder = new BuyViewHolder(view); return buyViewHolder; } @Override public void onBindViewHolder(@NonNull final BuyViewHolder buyViewHolder, final int i) { buyViewHolder.text_buy_name.setText(listbeans.get(i).getSellerName()); list = new ArrayList<>(); list.addAll(listbeans.get(i).getList()); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false); BuyitemAdapter buyitemAdapter = new BuyitemAdapter(context,list); buyViewHolder.recyc_buy_item.setLayoutManager(linearLayoutManager); buyViewHolder.recyc_buy_item.setAdapter(buyitemAdapter); buyViewHolder.recyc_buy_item.setNestedScrollingEnabled(false); buyViewHolder.checkbox_buy.setChecked(listbeans.get(i).isSelect()); buyViewHolder.checkbox_buy.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { listbeans.get(i).setSelect(buyViewHolder.checkbox_buy.isChecked()); for (GouBuyBean.DataBean.ListBean listBean:listbeans.get(i).getList()) { if(buyViewHolder.checkbox_buy.isChecked()){ listBean.setSelected(1); }else{ listBean.setSelected(0); } } sjSelect.sjselect(); shuaxin(); } }); buyitemAdapter.setSpSelected(new BuyitemAdapter.SPSelected(){ @Override public void selected(){ boolean bs = true; for(GouBuyBean.DataBean.ListBean listBean:listbeans.get(i).getList()){ if(listBean.getSelected() == 0) { bs = false; } } listbeans.get(i).setSelect(bs); sjSelect.sjselect(); shuaxin(); } }); buyitemAdapter.setAddjianselected(new BuyitemAdapter.addjianselected() { @Override public void addjianselect() { addjianlistenter.addjianlistenter(); } }); } @Override public int getItemCount() { return listbeans.size(); } class BuyViewHolder extends RecyclerView.ViewHolder{ private final CheckBox checkbox_buy; private final TextView text_buy_name; private final RecyclerView recyc_buy_item; public BuyViewHolder(@NonNull View itemView) { super(itemView); checkbox_buy = itemView.findViewById(R.id.checkbox_buy); text_buy_name = itemView.findViewById(R.id.text_buy_name); recyc_buy_item = itemView.findViewById(R.id.recyc_buy_item); } } } 商品的适配器
public class BuyitemAdapter extends RecyclerView.Adapter<BuyitemAdapter.BuyItemViewHolder> { Context context; List<GouBuyBean.DataBean.ListBean> list; public BuyitemAdapter(Context context, List<GouBuyBean.DataBean.ListBean> list) { this.context = context; this.list = list; } @NonNull @Override public BuyItemViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { View view = LayoutInflater.from(context).inflate(R.layout.buyitem_layout, viewGroup, false); BuyItemViewHolder buyItemViewHolder = new BuyItemViewHolder(view); return buyItemViewHolder; } //刷新 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(BuyitemAdapter.addjianselected addjianselected) { this.addjianselected = addjianselected; } public interface addjianselected{ void addjianselect(); } @Override public void onBindViewHolder(@NonNull final BuyItemViewHolder buyItemViewHolder, final int i) { if(list.get(i).getSelected() == 0){ buyItemViewHolder.check_box_item.setChecked(false); }else{ buyItemViewHolder.check_box_item.setChecked(true); } buyItemViewHolder.check_box_item.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { boolean checked = buyItemViewHolder.check_box_item.isChecked(); if(checked){ list.get(i).setSelected(1); }else{ list.get(i).setSelected(0); } spSelected.selected(); } }); buyItemViewHolder.text_buy_title.setText(list.get(i).getTitle()); buyItemViewHolder.add_reduce.setText(list.get(i).getNum()); String images = list.get(i).getImages(); if(images.contains("|")){ images = images.substring(0,images.indexOf("|")); buyItemViewHolder.sim_buy_item.setImageURI(Uri.parse(images)); }else{ buyItemViewHolder.sim_buy_item.setImageURI(Uri.parse(images)); } buyItemViewHolder.text_buy_price.setText(list.get(i).getPrice()*list.get(i).getNum()+""); buyItemViewHolder.add_reduce.setText(list.get(i).getNum()); //加 buyItemViewHolder.add_reduce.setAdd_nums(new AddReduce.Add_Nums() { @Override public void add(int add) { list.get(i).setNum(add); addjianselected.addjianselect(); shuaxin(); } }); //减 buyItemViewHolder.add_reduce.setJian_num(new AddReduce.Jian_Num() { @Override public void jian(int add) { list.get(i).setNum(add); addjianselected.addjianselect(); shuaxin(); } }); } @Override public int getItemCount() { return list.size(); } class BuyItemViewHolder extends RecyclerView.ViewHolder{ private final CheckBox check_box_item; private final SimpleDraweeView sim_buy_item; private final TextView text_buy_price; private final TextView text_buy_title; private final AddReduce add_reduce; public BuyItemViewHolder(@NonNull View itemView) { super(itemView); check_box_item = itemView.findViewById(R.id.check_box_item); sim_buy_item = itemView.findViewById(R.id.sim_buy_item); text_buy_price = itemView.findViewById(R.id.text_buy_price); text_buy_title = itemView.findViewById(R.id.text_buy_title); add_reduce = itemView.findViewById(R.id.add_reduce); } } }