购物车的适配器

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);
        }
    }

}

猜你喜欢

转载自blog.csdn.net/qq_42765628/article/details/82024415