购物车的全选反选、以及自定义加减器、计算值

 //全选反选
 需要在集合内外两层定义Boolean 值 默认为uFlase    点击总的时候判断是否选中、拿取总的数据进行选中、和内层的集合进行选中
        yh_check_zong.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (yh_check_zong.isChecked()){
                    for (int i=0;i<data.size();i++){
                        data.get(i).setTwo(true);
                        for (int j=0;j<data.get(i).getSpus().size();j++){
                            data.get(i).getSpus().get(j).setThree(true);
                        }
                    }
                }else{
                    for (int i=0;i<data.size();i++){
                        data.get(i).setTwo(false);
                        for (int j=0;j<data.get(i).getSpus().size();j++){
                            data.get(i).getSpus().get(j).setThree(false);
                        }
                    }
                }
                recycleYH_adapter.notifyDataSetChanged();
                CountPrice();
            }
        });
	适配器
	内外的两个适配器也要设置值 

自定义加减器
继承LinearLayout 从写三个方法
new 的方法 前两个要该成this

public Zdy(Context context) {
        this(context,null);
    }
    //xml的方法
    public Zdy(Context context, AttributeSet attrs) {
        this(context, attrs,0);
    }
    //定义的方法
    public Zdy(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init(context);
    }
//创建一个类并、并写一个回调的方法判断是否为空
private void init(final Context context){
        View view=LayoutInflater.from(context).inflate(R.layout.jiajian,this,true);

        jia = findViewById(R.id.jia);
        jian = findViewById(R.id.jian);
        et_num = findViewById(R.id.et_num);
        et_num.setText("1");

        jia.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
            	
                num=Integer.parseInt(et_num.getText().toString());
                num++;
                et_num.setText(num+"");
                //不为空的时候 调用方法并把值附上
                if (onAddListenter !=null){
                    onAddListenter.numListenter(num);
                }
              //  onAddListenter.numListenter(num);
            }
        });


        jian.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                num=Integer.parseInt(et_num.getText().toString());
                num--;
                if (num ==0){
                    num=1;
                    Toast.makeText(context,"不能再减了",Toast.LENGTH_SHORT).show();
                    return;
                }
                et_num.setText(num+"");
                if (onAddListenter!=null){
                    onAddListenter.numListenter(num);
                }
               // onAddListenter.numListenter(num);
            }
        });
    }
    private OnAddListenter onAddListenter;

    public interface OnAddListenter{
        void numListenter(int num);
    }

    public void setOnAddListenter( OnAddListenter onAddListenter){
        this.onAddListenter=onAddListenter;
    }
	//这个方法是对加价器上的数据进行负值、并且在最里层要调用并且赋值
    public void setNum(int newNub) {
        if (newNub > 0) {
            et_num.setText(newNub + "");
        } else {
            Toast.makeText(getContext(), "最小数量为0", Toast.LENGTH_SHORT).show();
        }
    }

计算总价

 private void CountPrice(){
        double SumPrice=0;
        int Sums=0;
        //还是调用Bean 
        List<ShowBean.DataBean> data = sjRecycle_adapter.getData();
        for (int i = 0; i< data.size(); i++){
            List<ShowBean.DataBean.ListBean> list = data.get(i).getList();
            for (int j=0;j<list.size();j++){
                ShowBean.DataBean.ListBean listBean = list.get(j);
                if (listBean.isTwo()){
                    double price = listBean.getPrice();
                    int num = listBean.getNum();
                    SumPrice+=price*num;
                    Sums+=num;
                }
            }
        }
        sj_num.setText(Sums+"");
        sj_zongjia.setText(SumPrice+"");
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值