shopcart1

public class ShopCarAdapter extends RecyclerView.Adapter<ShopCarAdapter.ViewHolder> {
private Context context;
private List list =new ArrayList<>();
public ShopCarAdapter(Context context) {
this.context = context;
}

@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    View view = LayoutInflater.from(context).inflate(R.layout.gwc_item, null, false);
    return new ViewHolder(view);
}

@Override
public void onBindViewHolder(@NonNull final ViewHolder viewHolder, final int i) {
    final ShoppingBean shopCarBean = list.get(i);
    viewHolder.checkBox.setText(list.get(i).categoryName);
    viewHolder.adapter.clear();
    viewHolder.adapter.add(shopCarBean.shoppingCartList);
    viewHolder.adapter.notifyDataSetChanged();
    viewHolder.recyclerView.setAdapter(viewHolder.adapter);
    viewHolder.checkBox.setChecked(shopCarBean.isChecked);
    viewHolder.checkBox.setTag(shopCarBean);
    viewHolder.checkBox.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            List<ShoppingChildBean> shoppingCartList = list.get(i).shoppingCartList;
            ShoppingBean viewTag = (ShoppingBean) v.getTag();
            CheckBox checkBox = (CheckBox) v;
            if (checkBox.isChecked()){
                viewTag.isChecked=true;
                for (int j = 0; j < shoppingCartList.size(); j++) {
                    shoppingCartList.get(j).check=checkBox.isChecked();
                }
                viewHolder.adapter.notifyDataSetChanged();
            }else {
                viewTag.isChecked=false;
                for (int j = 0; j < shoppingCartList.size(); j++) {
                    shoppingCartList.get(j).check=checkBox.isChecked();
                }
                viewHolder.adapter.notifyDataSetChanged();
            }
            priceAll();
        }

    });
    //判断二级条目中是否全部选中,如果全选中 则让一级的Checkbox选中,否则相反
    viewHolder.adapter.setShoppingData(new ShoppingRecyclerAdapter.ShoppingData() {
        @Override
        public void getData(int a) {
            if (a>list.get(i).shoppingCartList.size()){
                list.get(i).isChecked=true;
            }else {
                list.get(i).isChecked=false;
            }
            priceAll();
        }
    });
}

@Override
public int getItemCount() {
    return list.size();
}
//全选反选
public void checkedAll(boolean isChecked){
    for (int i = 0; i <list.size() ; i++) {
        list.get(i).isChecked=isChecked;
        final ShoppingBean shopCarBean = list.get(i);
        for (int j = 0; j < list.get(i).shoppingCartList.size(); j++) {
            shopCarBean.shoppingCartList.get(j).check =isChecked;
        }
    }
    notifyDataSetChanged();
}

//计算价格
public void priceAll() {
    int a=0;
    int b=0;
    double num = 0.0;
    for (int i = 0; i <list.size() ; i++) {
        final ShoppingBean shopCarBean = list.get(i);
        for (int j = 0; j < list.get(i).shoppingCartList.size(); j++) {
            b++;
            ShoppingChildBean shoppingChildBean = shopCarBean.shoppingCartList.get(j);
            if (shoppingChildBean.check) {
                num += shoppingChildBean.price * shoppingChildBean.count;
                a++;
            }
        }
    }
    if (a>=b){
        dataCall.dataCall(true);
    }else {
        dataCall.dataCall(false);
    }
    call.mCall(num,a);
    //a=0;
    notifyDataSetChanged();

}
//暴露方法
public List<ShoppingBean> getlist(){
    return list;
}

public void clear() {
    list.clear();
}

public void addList(List<ShoppingBean> result) {
    if (result!=null){
        list.addAll(result);
    }
}

public class ViewHolder extends RecyclerView.ViewHolder {

    private final CheckBox checkBox;
    private final RecyclerView recyclerView;
    ShoppingRecyclerAdapter adapter;
    public ViewHolder(@NonNull View itemView) {
        super(itemView);
        checkBox = itemView.findViewById(R.id.check);
        recyclerView = itemView.findViewById(R.id.child_recycler);
        recyclerView.setLayoutManager(new LinearLayoutManager(context,LinearLayoutManager.VERTICAL,false));
        adapter = new ShoppingRecyclerAdapter(context);
    }
}
private Call call;

public void setCall(Call call) {
    this.call = call;
}

public interface Call{
    void mCall(double a, int b);
}

private DataCall dataCall;

public void setDataCall(DataCall dataCall) {
    this.dataCall = dataCall;
}

public interface DataCall{
    void dataCall(boolean a);
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
网上购物系统是一套基于Web的适用于企业或个人网上开店的首选软件。产品凭借功能强大、性能稳定、页面美观等 特点深受用户喜爱。经过一年的创新开发和实践,产品已相当成熟和稳健,网趣网上购物系统集合目前网络所有购物 系统精华于一体,拥有多项国内领先的功能优势,并以不断追求和创新的步伐为用户更广泛的服务。 1、支持商品增加、修改功能,特别方便!<br>  2、支持4种在线支付:快钱、云网、支付宝、财付通接口。<br>  3、商品数据可直接导入Excel 电子表格!<br>  4、删除商品的同时,可以自动删除商品图片,大大节约空间!<br>   5、支持商品分类设置,分类划分更明细:大类->商品<br>  6、多元化展示,支持商品尺码、商品颜色的选择,适合各行业。<br>  7、诸多智能开关选项,全后台操作,前台支持订单查询功能!<br>  8、新增商品上、下架管理。<br>  9、具有强大的商品关键词、站点关键词设置功能,SEO优化一步到位。<br>  10、强大的权限分类管理功能,可设置不同管理级别的管理员进行网站管理<br>  11、商品大图支持缩放功能,具有强大的站点 访问统计功能。<br>  12、强大的商城报价中心功能,可以快速浏览商品价格。<br>  23、支持管理员登陆日志 ,可以对非法登陆的信息一一记录。<br> 13、支持商品订单后期支付,下完订单无立即支付也可进行再次付款。<br>  14、支持商品订单发货单号功能,支持商品缺货管理功能。<br>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值