购物车删除

  private Context context;
    private List<ShoopingCard.DataBean> grouplist;
    private List<List<ShoopingCard.DataBean.ListBean>> childelist;
    private double price = 0;

    public Madapter(Context context, List<ShoopingCard.DataBean> grouplist, List<List<ShoopingCard.DataBean.ListBean>> childelist) {
        this.context = context;
        this.grouplist = grouplist;
        this.childelist = childelist;
    }

    @Override
    public int getGroupCount() {
        return grouplist.size();
    }

    @Override
    public int getChildrenCount(int i) {
        return childelist.get(i).size();
    }

    @Override
    public Object getGroup(int i) {
        return grouplist.get(i);
    }

    @Override
    public Object getChild(int i, int i1) {
        return childelist.get(i).get(i1);
    }

    @Override
    public long getGroupId(int i) {
        return i;
    }

    @Override
    public long getChildId(int i, int i1) {
        return i1;
    }

    @Override
    public boolean hasStableIds() {
        return true;
    }

    @Override
    public View getGroupView(final int i, boolean b, View view, ViewGroup viewGroup) {

        View groupitem;
        final ViewHolder1 viewHolder1;
        if (view == null) {
            viewHolder1 = new ViewHolder1();
            groupitem = View.inflate(context, R.layout.group, null);
            viewHolder1.groupchecked = groupitem.findViewById(R.id.groupsataus);
            groupitem.setTag(viewHolder1);
        } else {
            groupitem = view;
            viewHolder1 = (ViewHolder1) groupitem.getTag();

        }
        viewHolder1.groupchecked.setChecked(grouplist.get(i).isgroupchecked());
        viewHolder1.groupchecked.setText(grouplist.get(i).getSellerName());

        //父项选中,选中全部子项/反选
        viewHolder1.groupchecked.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                if (viewHolder1.groupchecked.isChecked()) {
                    grouplist.get(i).setIsgroupchecked(viewHolder1.groupchecked.isChecked());
                    isAllChild(i, viewHolder1.groupchecked.isChecked());
                    //判断所有父项是否选中全选中,则选中全选/反选
                    boolean all = isAll();
                    if (all) {
                        EventBus.getDefault().post(new Status(all));
                    }
                    //计算价格
                    priceAndCount();

                } else {
                    grouplist.get(i).setIsgroupchecked(viewHolder1.groupchecked.isChecked());
                    isAllChild(i, viewHolder1.groupchecked.isChecked());
                    boolean all = isAll();
                    if (!all) {
                        EventBus.getDefault().post(new Status(all));
                    }
                    //计算价格
                    priceAndCount();
                }

            }
        });
        return groupitem;
    }

    @Override
    public View getChildView(final int i, final int i1, boolean b, View view, ViewGroup viewGroup) {
        View childitem;
        final ViewHolder2 viewHolder2;
        if (view == null) {
            viewHolder2 = new ViewHolder2();
            childitem = View.inflate(context, R.layout.child, null);
            viewHolder2.childchecked = childitem.findViewById(R.id.childsataus);
            viewHolder2.img = childitem.findViewById(R.id.img);
            viewHolder2.tiltess = childitem.findViewById(R.id.tielss);
            viewHolder2.miaoshu = childitem.findViewById(R.id.miaoshu);
            viewHolder2.newprice = childitem.findViewById(R.id.newprice);
            viewHolder2.oldprice = childitem.findViewById(R.id.oldprice);
            viewHolder2.jianjian = childitem.findViewById(R.id.jianjian);
            viewHolder2.num = childitem.findViewById(R.id.num);
            viewHolder2.jiajia = childitem.findViewById(R.id.jiajia);
            childitem.setTag(viewHolder2);
        } else {
            childitem = view;
            viewHolder2 = (ViewHolder2) childitem.getTag();

        }
        viewHolder2.childchecked.setChecked(childelist.get(i).get(i1).ischildchecked());
        viewHolder2.img.setImageURI(Uri.parse(childelist.get(i).get(i1).getImages().split("!")[0]));
        viewHolder2.tiltess.setText(childelist.get(i).get(i1).getTitle());
        viewHolder2.miaoshu.setText(childelist.get(i).get(i1).getSubhead());
        viewHolder2.newprice.setText("¥" + childelist.get(i).get(i1).getBargainPrice() + "");
        //加下划线
        viewHolder2.oldprice.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);
        viewHolder2.oldprice.setText("¥" + childelist.get(i).get(i1).getPrice());
        viewHolder2.num.setText(childelist.get(i).get(i1).getNum() + "");


        //事件加加监听
        viewHolder2.jiajia.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                int num = childelist.get(i).get(i1).getNum();
                childelist.get(i).get(i1).setNum(num += 1);
                //刷新适配器
                notifyDataSetChanged();
                //计算价格
                priceAndCount();
            }
        });

        //事件减减监听
        viewHolder2.jianjian.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                int num = childelist.get(i).get(i1).getNum();
                if (num == 1) {
                    Toast.makeText(context, "最少数量为1", Toast.LENGTH_SHORT).show();
                } else {
                    childelist.get(i).get(i1).setNum(num -= 1);
                    //刷新适配器
                    notifyDataSetChanged();
                    //计算价格
                    priceAndCount();
                }

            }
        });


        //子选项状态
        viewHolder2.childchecked.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                if (viewHolder2.childchecked.isChecked()) {
                    //状态值设为true
                    childelist.get(i).get(i1).setIschildchecked(viewHolder2.childchecked.isChecked());
                    //遍历同级选项如果都选中选中父项
                    boolean isallchildchecked = isallchildchecked(i);
                    if (isallchildchecked) {
                        grouplist.get(i).setIsgroupchecked(viewHolder2.childchecked.isChecked());
                    }
                    notifyDataSetChanged();

                    boolean all = isAll();
                    if (all) {
                        EventBus.getDefault().post(new Status(all));
                    }
                    //计算价格
                    priceAndCount();

                } else {
                    childelist.get(i).get(i1).setIschildchecked(viewHolder2.childchecked.isChecked());
                    boolean isallchildchecked = isallchildchecked(i);
                    if (!isallchildchecked) {
                        grouplist.get(i).setIsgroupchecked(viewHolder2.childchecked.isChecked());
                    }
                    notifyDataSetChanged();

                    boolean all = isAll();
                    if (!all) {
                        EventBus.getDefault().post(new Status(all));
                    }
                    //计算价格
                    priceAndCount();
                }
            }
        });

        return childitem;
    }

    @Override
    public boolean isChildSelectable(int i, int i1) {
        return false;
    }


    //优化类

    class ViewHolder1 {
        CheckBox groupchecked;
    }

    class ViewHolder2 {
        CheckBox childchecked;
        SimpleDraweeView img;
        TextView tiltess;
        TextView miaoshu;
        TextView newprice;
        TextView oldprice;
        TextView jianjian;
        TextView num;
        TextView jiajia;
    }


    //遍历同级选项如果都选中选中父项
    public boolean isallchildchecked(int i) {
        List<ShoopingCard.DataBean.ListBean> listBeen = childelist.get(i);
        for (int j = 0; j < listBeen.size(); j++) {
            if (!listBeen.get(j).ischildchecked()) {
                return false;
            }
        }
        return true;
    }


    // //父项选中,选中全部子项/反选
    public void isAllChild(int postion, boolean b) {
        List<ShoopingCard.DataBean.ListBean> listBeen = childelist.get(postion);
        for (int i = 0; i < listBeen.size(); i++) {
            listBeen.get(i).setIschildchecked(b);
        }
        //刷新适配器
        notifyDataSetChanged();
    }

    //判断所有父项是否选中全选中,则选中全选/反选
    public boolean isAll() {
        for (int i = 0; i < grouplist.size(); i++) {
            if (!grouplist.get(i).isgroupchecked()) {
                return false;
            }
        }
        return true;
    }


    //全选/反选
    public void all(boolean b) {

        for (int i = 0; i < grouplist.size(); i++) {
            grouplist.get(i).setIsgroupchecked(b);
        }

        for (int i = 0; i < childelist.size(); i++) {
            for (int j = 0; j < childelist.get(i).size(); j++) {
                childelist.get(i).get(j).setIschildchecked(b);
            }
        }

        //刷新适配器
        notifyDataSetChanged();
        //计算价格
        priceAndCount();
    }

    //计算价格
    public void priceAndCount() {
        price = 0;

        for (int i = 0; i < childelist.size(); i++) {
            List<ShoopingCard.DataBean.ListBean> listBeen = childelist.get(i);
            for (int j = 0; j < listBeen.size(); j++) {
                if (listBeen.get(j).ischildchecked()) {
                    price += listBeen.get(j).getNum() * listBeen.get(j).getBargainPrice();
                }
            }
        }
        //发送总价钱
        EventBus.getDefault().post(new Money(price));
    }

    //点击删除判断判断是否有选中的商品
    public boolean isdel() {

        for (int i = 0; i < childelist.size(); i++) {
            List<ShoopingCard.DataBean.ListBean> listBeen = childelist.get(i);
            for (int j = 0; j < listBeen.size(); j++) {
                if (listBeen.get(j).ischildchecked()) {
                    return true;
                }
            }
        }
        return false;
    }

    //返回选择的商品id
    public void del() {


        for (int i = 0; i < childelist.size(); i++) {
            List<ShoopingCard.DataBean.ListBean> listBeen = childelist.get(i);
            for (int j = 0; j < listBeen.size(); j++) {
                if (listBeen.get(j).ischildchecked()) {
                    listBeen.get(j).setIschildchecked(false);
                    EventBus.getDefault().post(new GoodsId(listBeen.get(j).getPid()));
                    //计算价格
                    priceAndCount();
                }
            }
        }


    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值