一级购物车操作

···java
public class QueryCarAdapter extends RecyclerView.Adapter<QueryCarAdapter.VHolder>{
private List<QueryCar.ResultBean> mresult;
private FragmentActivity mContext;
ArrayList ischeckeds;

public QueryCarAdapter(FragmentActivity activity, List<QueryCar.ResultBean> result) {
    mContext = activity;
    mresult = new ArrayList<>();
    ischeckeds = new ArrayList<>();
    mresult.addAll(result);

    //设置默认为false
    for (int i = 0; i < mresult.size(); i++) {
        ischeckeds.add(false);
    }
}



@NonNull
@Override
public VHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View view = View.inflate(parent.getContext(), R.layout.layout_car_child, null);
    return new VHolder(view);
}

@Override
public void onBindViewHolder(@NonNull final VHolder holder, final int position) {
      holder.child_icon.setImageURI(Uri.parse(mresult.get(position).getPic()));

      holder.child_money.setText(mresult.get(position).getPrice()+"");

      holder.child_title.setText(mresult.get(position).getCommodityName());

      holder.child_view.setNum(mresult.get(position).getCount());
      holder.child_check.setChecked(ischeckeds.get(position));


    //复选框选中状态变化
    holder.child_check.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //是否选中
            boolean isChecked = holder.child_check.isChecked();
            //存入
            ischeckeds.set(position,isChecked);
            //获取
            Method();
        }
    });
    //当数量发生变化的时候改变数量和总价
    //加减
    holder.child_view.setNumListener(new CarAddAndSub.CarResultNumListener() {
        @Override
        public void onNum(int number) {
            mresult.get(position).setCount(number);
            /*Log.e("数量",""+number);
            Log.e("数量","bean内的"+mresult.get(position).getCount());*/
            Method();
        }
    });
    Method();
}

private void Method() {
    //获取选中条目的总价
    int money=0;
    for (int i = 0; i < ischeckeds.size(); i++) {
        if(ischeckeds.get(i)){
            money += mresult.get(i).getPrice() * mresult.get(i).getCount();
        }
    }
    //价钱  回调
    mOnCheckBoxClick.itemclick(money);

    boolean ische=false;
    for (int i = 0; i < ischeckeds.size(); i++) {
        if(ischeckeds.get(i)){
            ische=true;
        }else{
            ische=false;
            mAllChecked.checked(ische);
            return;
        }
    }
    //选中状态  回调
    mAllChecked.checked(ische);
}

//全选
public void setAllCheckedCheckBox(boolean isChecked) {
    for (int i = 0; i < ischeckeds.size(); i++) {
        ischeckeds.set(i,isChecked);
    }
    notifyDataSetChanged();
}

//条目  全选与否
public void setAllChecked(AllChecked allChecked) {
    mAllChecked = allChecked;
    Method();
}




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


class VHolder extends RecyclerView.ViewHolder{
    //child_check  child_icon child_title child_money  child_view
    TextView child_title,child_money;
    SimpleDraweeView child_icon;
    CheckBox child_check;
    CarAddAndSub child_view;
    public VHolder(View itemView) {
        super(itemView);

        child_title = itemView.findViewById(R.id.child_title);
        child_money = itemView.findViewById(R.id.child_money);
        child_icon = itemView.findViewById(R.id.child_icon);

        child_check = itemView.findViewById(R.id.child_check);
        child_view = itemView.findViewById(R.id.child_view);

    }
}

//复选框选中状态发生变化 回调到购物车页面 更改总价
OnCheckBoxClick mOnCheckBoxClick;

public void setOnCheckBoxClick(OnCheckBoxClick onCheckBoxClick) {
    mOnCheckBoxClick = onCheckBoxClick;
}

public interface OnCheckBoxClick{
    void itemclick(int money);
}


AllChecked mAllChecked;

public interface AllChecked{
    void checked(boolean checked);
}

}

```java
  //价钱合计
                    queryCarAdapter.setOnCheckBoxClick(new QueryCarAdapter.OnCheckBoxClick() {

                        @Override
                        public void itemclick(int money) {
                            mAllmoney = money;
                            amount_car.setText("合计:¥" + mAllmoney);
                        }
                    });
                     //条目如果全部选中  全选框选中
                    queryCarAdapter.setAllChecked(new QueryCarAdapter.AllChecked() {
                        @Override
                        public void checked(boolean checked) {
                            allcheck_car.setChecked(checked);
                        }
                    });

                    //复选框选中状态合计
                    allcheck_car.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            boolean isChecked = allcheck_car.isChecked();
                            queryCarAdapter.setAllCheckedCheckBox(isChecked);
                        }
                    });
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值