购物车单选,加减器

Add_VIew

package com.example.huangshuaimonth1.view;

import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.example.huangshuaimonth1.R;

public class Add_Show extends LinearLayout {
private TextView jia,jian;
private EditText edit_num;
private int num=1;
public Add_Show(Context context) {
super(context);
}

public Add_Show(Context context, AttributeSet attrs) {
    super(context, attrs);
    View view=LayoutInflater.from(context).inflate(R.layout.linear3,this);
    jia=view.findViewById(R.id.add);
    jian=view.findViewById(R.id.minus);
    edit_num=view.findViewById(R.id.et_num);
    edit_num.setText("1");
    jian.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            num--;
           if (num==0){
               num=1;
           }else{
               edit_num.setText(num+"");
               if (addminusCallback!=null) {
                   addminusCallback.addcallback(num);
               }
           }
        }
    });
    jia.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            num++;
            edit_num.setText(num+"");
            if (addminusCallback!=null) {
                addminusCallback.addcallback(num);
            }
        }
    });
}

public Add_Show(Context context,  AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
}

public void setEd_num(int num){
    edit_num.setText(num+"");
}

public AddminusCallback addminusCallback;
public void setAddminusCallback(AddminusCallback addminusCallback) {
    this.addminusCallback = addminusCallback;
}

public interface AddminusCallback{
    void addcallback(int num);
}

}

CartyijiCallback
    void notifyCart();
	CarterjiCallback
    void notifyCartItem(boolean isChecked, int postion);
    void notifyNum();
WaiAdapter
public class WaiAdapter extends XRecyclerView.Adapter<WaiAdapter.ViewHolder>implements  CarterjiCallback {
    private Context context;
    private List<GouBean.DataBean> list;

    public WaiAdapter(Context context) {
        this.context = context;
        list=new ArrayList<>();
    }

    public void setList(List<GouBean.DataBean> list) {
        this.list = list;
        notifyDataSetChanged();
    }
    private CartyijiCallback cartyijiCallback;
    public void setCartyijiCallback(CartyijiCallback cartyijiCallback) {
        this.cartyijiCallback = cartyijiCallback;
    }
    @NonNull
    @Override
    public WaiAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view=LayoutInflater.from(context).inflate(R.layout.activity_one,viewGroup,false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull final WaiAdapter.ViewHolder viewHolder, final int i) {
        GouBean.DataBean dataBean = list.get(i);
        viewHolder.checkbox_linear1.setChecked(dataBean.ischecked);
        viewHolder.name_id.setText(dataBean.getSellerName());
        viewHolder.xrec_two.setLayoutManager(new LinearLayoutManager(context));
        final NeiAdapter neiAdapter = new NeiAdapter(context, list, i);
        neiAdapter.setCarterjiCallback(this);
        viewHolder.xrec_two.setAdapter(neiAdapter);
        neiAdapter.setList(list);

        viewHolder.checkbox_linear1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              list.get(i).ischecked = viewHolder.checkbox_linear1.isChecked();
              for (GouBean.DataBean.ListBean listBean:list.get(i).getList()){
                  listBean.poudctchecked=list.get(i).ischecked;
              }
              notifyDataSetChanged();
                if (cartyijiCallback!=null){
                    cartyijiCallback.notifyCart();
                }
            }
        });
    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    @Override
    public void notifyCartItem(boolean isChecked, int postion) {
        list.get(postion).ischecked=isChecked;
        notifyDataSetChanged();
        if (cartyijiCallback!=null){
            cartyijiCallback.notifyCart();
        }
    }

    @Override
    public void notifyNum() {
        if (cartyijiCallback!=null){
            cartyijiCallback.notifyCart();
        }
    }

    public class ViewHolder extends RecyclerView.ViewHolder {
        private CheckBox checkbox_linear1;
        private TextView name_id;
        private XRecyclerView xrec_two;
        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            checkbox_linear1=itemView.findViewById(R.id.checkbox_linear1);
            name_id=itemView.findViewById(R.id.name_id);
            xrec_two=itemView.findViewById(R.id.xrec_two);
        }
    }
   public List<GouBean.DataBean> setList(){
        return list;
    }

}
netAdpater
public class NeiAdapter extends XRecyclerView.Adapter<NeiAdapter.ViewHolder> {
    private Context context;
    private List<GouBean.DataBean> list;
    private int a;

    public NeiAdapter(Context context, List<GouBean.DataBean> list, int a) {
        this.context = context;
        this.list = list;
        this.a = a;
    }


    public void setList(List<GouBean.DataBean> list) {
        this.list = list;
        notifyDataSetChanged();
    }
    private CarterjiCallback carterjiCallback;
    public void setCarterjiCallback(CarterjiCallback carterjiCallback) {
        this.carterjiCallback = carterjiCallback;
    }
    @NonNull
    @Override
    public NeiAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view=LayoutInflater.from(context).inflate(R.layout.activity_two,viewGroup,false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull final NeiAdapter.ViewHolder viewHolder, final int i) {
        final List<GouBean.DataBean.ListBean> list = this.list.get(a).getList();
        viewHolder.checkbox_linear2.setChecked(list.get(i).poudctchecked);
        viewHolder.name1.setText(list.get(i).title);
        viewHolder.price.setText(list.get(i).price+"");
        viewHolder.image.setImageURI(Uri.parse(list.get(i).images));

        viewHolder.Add_Show.setEd_num(list.get(i).shuliang);
        viewHolder.Add_Show.setAddminusCallback(new Add_Show.AddminusCallback() {
            @Override
            public void addcallback(int num) {
                list.get(i).shuliang=num;
                if (carterjiCallback!=null){
                    carterjiCallback.notifyNum();
                }
            }
        });
       viewHolder.checkbox_linear2.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               if (!viewHolder.checkbox_linear2.isChecked()){
                   list.get(i).poudctchecked=false;
                   if (carterjiCallback!=null){
                       carterjiCallback.notifyCartItem(false,list.get(i).shuliang);
                   }
               }else {
                   list.get(i).poudctchecked=true;
                   for (GouBean.DataBean.ListBean listBean : list) {
                       if (!listBean.poudctchecked){
                           if (carterjiCallback!=null){
                               carterjiCallback.notifyCartItem(false,list.get(i).shuliang);
                           }
                           break;
                       }
                       if (carterjiCallback!=null){
                           carterjiCallback.notifyCartItem(true,list.get(i).shuliang);
                       }
                   }
               }
           }
       });
    }

    @Override
    public int getItemCount() {
        return list.get(a).getList().size();
    }

    public class ViewHolder extends RecyclerView.ViewHolder {
        private TextView name1;
        private CheckBox checkbox_linear2;
        private ImageView image;
        private TextView price;
        private com.example.huangshuaimonth1.view.Add_Show Add_Show;
        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            name1=itemView.findViewById(R.id.name1);
            checkbox_linear2=itemView.findViewById(R.id.checkbox_linear2);
            image=itemView.findViewById(R.id.image);
            price=itemView.findViewById(R.id.price);
            Add_Show=itemView.findViewById(R.id.Add_Show);
        }
    }
View

    @Override
    public void GouSuccess(Object result) {
        GouBean gouBean=(GouBean) result;
        waiAdapter = new WaiAdapter(getActivity());
        xrecOne.setAdapter(waiAdapter);
        waiAdapter.setCartyijiCallback(this);
        List<GouBean.DataBean> data = gouBean.getData();
        waiAdapter.setList(data);
    }

猜你喜欢

转载自blog.csdn.net/huangshuaila/article/details/89064915