仿京东之购物车

加权限

compile 'com.youth.banner:banner:1.4.10'


compile 'com.scwang.smartrefresh:SmartRefreshLayout:1.0.5.1'
compile 'com.github.bumptech.glide:glide:4.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0-alpha3'
implementation 'com.google.code.gson:gson:2.2.4'
compile 'com.acker:simplezxing:1.5'
compile 'com.readystatesoftware.systembartint:systembartint:1.0.3'
compile 'com.android.support:design:28.0.0-alpha1'
implementation 'com.facebook.fresco:fresco:1.5.0'

implementation 'com.hyman:flowlayout-lib:1.1.2'

compile 'io.reactivex.rxjava2:rxjava:2.0.0-RC3'
compile 'io.reactivex.rxjava2:rxandroid:2.0.0-RC1'
compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'
compile 'com.squareup.retrofit2:retrofit:2.0.0'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
implementation 'com.squareup.retrofit2:adapter-rxjava2:+'

//https://blog.csdn.net/Lucky_7777777/article/details/80187395

api

public  static  final String  URL="https://www.zhaoapi.cn/";

apiservice

@GET("product/getCarts")
Flowable<CartBean> getCartData(@Query("uid") String uid);
public class CartBean {



    /**
     * msg : 请求成功
     * code : 0
     * data : [{"list":[{"bargainPrice":11800,"createtime":"2017-10-10T17:33:37","detailUrl":"https://item.m.jd.com/product/4338107.html?utm#_source=androidapp&utm#_medium=appshare&utm#_campaign=t#_335139774&utm#_term=QQfriends","images":"https://m.360buyimg.com/n0/jfs/t6700/155/2098998076/156185/6cf95035/595dd5a5Nc3a7dab5.jpg!q70.jpg","num":5,"pid":57,"price":5199,"pscid":40,"selected":1,"sellerid":1,"subhead":"【i5 MX150 2G显存】全高清窄边框 8G内存 256固态硬盘 支持指纹识别 预装WIN10系统","title":"小米(MI)Air 13.3英寸全金属轻薄笔记本(i5-7200U 8G 256G PCle SSD MX150 2G独显 FHD 指纹识别 Win10)银\r\n"},{"bargainPrice":99,"createtime":"2017-10-14T21:38:26","detailUrl":"https://item.m.jd.com/product/4345173.html?utm#_source=androidapp&utm#_medium=appshare&utm#_campaign=t#_335139774&utm#_term=QQfriends","images":"https://m.360buyimg.com/n0/jfs/t6037/35/2944615848/95178/6cd6cff0/594a3a10Na4ec7f39.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t6607/258/1025744923/75738/da120a2d/594a3a12Ne3e6bc56.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t6370/292/1057025420/64655/f87644e3/594a3a12N5b900606.jpg!q70.jpg","num":23,"pid":45,"price":2999,"pscid":39,"selected":0,"sellerid":1,"subhead":"高清双摄,就是清晰!2000+1600万高清摄像头,6GB大内存+高通骁龙835处理器,性能怪兽!","title":"一加手机5 (A5000) 6GB+64GB 月岩灰 全网通 双卡双待 移动联通电信4G手机"}],"sellerName":"商家1","sellerid":"1"},{"list":[{"bargainPrice":11800,"createtime":"2017-10-14T21:38:26","detailUrl":"https://item.m.jd.com/product/5025518.html?utm#_source=androidapp&utm#_medium=appshare&utm#_campaign=t#_335139774&utm#_term=QQfriends","images":"https://m.360buyimg.com/n0/jfs/t8830/106/1760940277/195595/5cf9412f/59bf2ef5N5ab7dc16.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5428/70/1520969931/274676/b644dd0d/591128e7Nd2f70da0.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5566/365/1519564203/36911/620c750c/591128eaN54ac3363.jpg!q70.jpg","num":2,"pid":58,"price":6399,"pscid":40,"selected":0,"sellerid":2,"subhead":"升级4G大显存!Nvme协议Pcie SSD,速度快人一步】GTX1050Ti就选拯救者!专业游戏键盘&新模具全新设计!","title":"联想(Lenovo)拯救者R720 15.6英寸游戏笔记本电脑(i5-7300HQ 8G 1T+128G SSD GTX1050Ti 4G IPS 黑)"},{"bargainPrice":6666,"createtime":"2017-10-10T16:01:31","detailUrl":"https://item.m.jd.com/product/5089273.html?utm#_source=androidapp&utm#_medium=appshare&utm#_campaign=t#_335139774&utm#_term=QQfriends","images":"https://m.360buyimg.com/n0/jfs/t8284/363/1326459580/71585/6d3e8013/59b857f2N6ca75622.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t9346/182/1406837243/282106/68af5b54/59b8480aNe8af7f5c.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t8434/54/1359766007/56140/579509d9/59b85801Nfea207db.jpg!q70.jpg","num":13,"pid":46,"price":234,"pscid":39,"selected":0,"sellerid":2,"subhead":"【iPhone新品上市】新一代iPhone,让智能看起来更不一样","title":"Apple iPhone 8 Plus (A1864) 64GB 金色 移动联通电信4G手机"}],"sellerName":"商家2","sellerid":"2"},{"list":[{"bargainPrice":1599,"createtime":"2017-10-14T21:48:08","detailUrl":"https://item.m.jd.com/product/1993026402.html?utm#_source=androidapp&utm#_medium=appshare&utm#_campaign=t#_335139774&utm#_term=QQfriends","images":"https://m.360buyimg.com/n0/jfs/t5863/302/8961270302/97126/41feade1/5981c81cNc1b1fbef.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7003/250/1488538438/195825/53bf31ba/5981c57eN51e95176.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5665/100/8954482513/43454/418611a9/5981c57eNd5fc97ba.jpg!q70.jpg","num":3,"pid":47,"price":111,"pscid":39,"selected":0,"sellerid":3,"subhead":"碳黑色 32GB 全网通 官方标配   1件","title":"锤子 坚果Pro 特别版 巧克力色 酒红色 全网通 移动联通电信4G手机 双卡双待 碳黑色 32GB 全网通"}],"sellerName":"商家3","sellerid":"3"},{"list":[{"bargainPrice":11800,"createtime":"2017-10-03T23:53:28","detailUrl":"https://mitem.jd.hk/ware/view.action?wareId=1988853309&cachekey=1acb07a701ece8d2434a6ae7fa6870a1","images":"https://m.360buyimg.com/n0/jfs/t6130/97/1370670410/180682/1109582a/593276b1Nd81fe723.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5698/110/2617517836/202970/c9388feb/593276b7Nbd94ef1f.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5698/110/2617517836/202970/c9388feb/593276b7Nbd94ef1f.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5815/178/2614671118/51656/7f52d137/593276c7N107b725a.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5878/60/2557817477/30873/4502b606/593276caN5a7d6357.jpg!q70.jpg","num":1,"pid":62,"price":15999,"pscid":40,"selected":0,"sellerid":6,"subhead":"购买电脑办公部分商品满1元返火车票5元优惠券(返完即止)","title":"全球购 新款Apple MacBook Pro 苹果笔记本电脑 银色VP2新13英寸Bar i5/8G/256G"}],"sellerName":"商家6","sellerid":"6"},{"list":[{"bargainPrice":11800,"createtime":"2017-10-14T21:38:26","detailUrl":"https://mitem.jd.hk/ware/view.action?wareId=1988853309&cachekey=1acb07a701ece8d2434a6ae7fa6870a1","images":"https://m.360buyimg.com/n0/jfs/t6130/97/1370670410/180682/1109582a/593276b1Nd81fe723.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5698/110/2617517836/202970/c9388feb/593276b7Nbd94ef1f.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5698/110/2617517836/202970/c9388feb/593276b7Nbd94ef1f.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5815/178/2614671118/51656/7f52d137/593276c7N107b725a.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5878/60/2557817477/30873/4502b606/593276caN5a7d6357.jpg!q70.jpg","num":1,"pid":63,"price":10000,"pscid":40,"selected":0,"sellerid":7,"subhead":"购买电脑办公部分商品满1元返火车票5元优惠券(返完即止)","title":"全球购 新款Apple MacBook Pro 苹果笔记本电脑 银色VP2新13英寸Bar i5/8G/256G"}],"sellerName":"商家7","sellerid":"7"},{"list":[{"bargainPrice":11800,"createtime":"2017-10-03T23:43:53","detailUrl":"https://mitem.jd.hk/ware/view.action?wareId=1988853309&cachekey=1acb07a701ece8d2434a6ae7fa6870a1","images":"https://m.360buyimg.com/n0/jfs/t6130/97/1370670410/180682/1109582a/593276b1Nd81fe723.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5698/110/2617517836/202970/c9388feb/593276b7Nbd94ef1f.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5698/110/2617517836/202970/c9388feb/593276b7Nbd94ef1f.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5815/178/2614671118/51656/7f52d137/593276c7N107b725a.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5878/60/2557817477/30873/4502b606/593276caN5a7d6357.jpg!q70.jpg","num":2,"pid":64,"price":11000,"pscid":40,"selected":0,"sellerid":8,"subhead":"购买电脑办公部分商品满1元返火车票5元优惠券(返完即止)","title":"全球购 新款Apple MacBook Pro 苹果笔记本电脑 银色VP2新13英寸Bar i5/8G/256G"}],"sellerName":"商家8","sellerid":"8"}]
     */

    private String msg;
    private String code;
    private List<DataBean> data;

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public List<DataBean> getData() {
        return data;
    }

    public void setData(List<DataBean> data) {
        this.data = data;
    }

    public static class DataBean {
        /**
         * list : [{"bargainPrice":11800,"createtime":"2017-10-10T17:33:37","detailUrl":"https://item.m.jd.com/product/4338107.html?utm#_source=androidapp&utm#_medium=appshare&utm#_campaign=t#_335139774&utm#_term=QQfriends","images":"https://m.360buyimg.com/n0/jfs/t6700/155/2098998076/156185/6cf95035/595dd5a5Nc3a7dab5.jpg!q70.jpg","num":5,"pid":57,"price":5199,"pscid":40,"selected":1,"sellerid":1,"subhead":"【i5 MX150 2G显存】全高清窄边框 8G内存 256固态硬盘 支持指纹识别 预装WIN10系统","title":"小米(MI)Air 13.3英寸全金属轻薄笔记本(i5-7200U 8G 256G PCle SSD MX150 2G独显 FHD 指纹识别 Win10)银\r\n"},{"bargainPrice":99,"createtime":"2017-10-14T21:38:26","detailUrl":"https://item.m.jd.com/product/4345173.html?utm#_source=androidapp&utm#_medium=appshare&utm#_campaign=t#_335139774&utm#_term=QQfriends","images":"https://m.360buyimg.com/n0/jfs/t6037/35/2944615848/95178/6cd6cff0/594a3a10Na4ec7f39.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t6607/258/1025744923/75738/da120a2d/594a3a12Ne3e6bc56.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t6370/292/1057025420/64655/f87644e3/594a3a12N5b900606.jpg!q70.jpg","num":23,"pid":45,"price":2999,"pscid":39,"selected":0,"sellerid":1,"subhead":"高清双摄,就是清晰!2000+1600万高清摄像头,6GB大内存+高通骁龙835处理器,性能怪兽!","title":"一加手机5 (A5000) 6GB+64GB 月岩灰 全网通 双卡双待 移动联通电信4G手机"}]
         * sellerName : 商家1
         * sellerid : 1
         */

        private String sellerName;
        private String sellerid;
        private int getId;
        private List<ListBean> list;
        private boolean ischeck;

        public boolean isCheck() {
            return ischeck;
        }


        public void setIscheck(boolean ischeck) {
            this.ischeck = ischeck;
        }

        public int getGetId() {
            return getId;
        }

        public void setGetId(int getId) {
            this.getId = getId;
        }

        public String getSellerName() {
            return sellerName;
        }

        public void setSellerName(String sellerName) {
            this.sellerName = sellerName;
        }

        public String getSellerid() {
            return sellerid;
        }

        public void setSellerid(String sellerid) {
            this.sellerid = sellerid;
        }

        public List<ListBean> getList() {
            return list;
        }

        public void setList(List<ListBean> list) {
            this.list = list;
        }




        public static class ListBean {
            /**
             * bargainPrice : 11800.0
             * createtime : 2017-10-10T17:33:37
             * detailUrl : https://item.m.jd.com/product/4338107.html?utm#_source=androidapp&utm#_medium=appshare&utm#_campaign=t#_335139774&utm#_term=QQfriends
             * images : https://m.360buyimg.com/n0/jfs/t6700/155/2098998076/156185/6cf95035/595dd5a5Nc3a7dab5.jpg!q70.jpg
             * num : 5
             * pid : 57
             * price : 5199.0
             * pscid : 40
             * selected : 1
             * sellerid : 1
             * subhead : 【i5 MX150 2G显存】全高清窄边框 8G内存 256固态硬盘 支持指纹识别 预装WIN10系统
             * title : 小米(MI)Air 13.3英寸全金属轻薄笔记本(i5-7200U 8G 256G PCle SSD MX150 2G独显 FHD 指纹识别 Win10)银

             */

            private double bargainPrice;
            private String createtime;
            private String detailUrl;
            private String images;
            private int num;
            private int pid;
            private double price;
            private int pscid;
            private int selected;
            private int sellerid;
            private String subhead;
            private String title;
            //给child设置状态值  提供set get方法
            private boolean childCheck;

            public boolean isChildCheck() {
                return childCheck;
            }

            public void setChildCheck(boolean childCheck) {
                this.childCheck = childCheck;
            }

            public double getBargainPrice() {
                return bargainPrice;
            }

            public void setBargainPrice(double bargainPrice) {
                this.bargainPrice = bargainPrice;
            }

            public String getCreatetime() {
                return createtime;
            }

            public void setCreatetime(String createtime) {
                this.createtime = createtime;
            }

            public String getDetailUrl() {
                return detailUrl;
            }

            public void setDetailUrl(String detailUrl) {
                this.detailUrl = detailUrl;
            }

            public String getImages() {
                return images;
            }

            public void setImages(String images) {
                this.images = images;
            }

            public int getNum() {
                return num;
            }

            public void setNum(int num) {
                this.num = num;
            }

            public int getPid() {
                return pid;
            }

            public void setPid(int pid) {
                this.pid = pid;
            }

            public double getPrice() {
                return price;
            }

            public void setPrice(double price) {
                this.price = price;
            }

            public int getPscid() {
                return pscid;
            }

            public void setPscid(int pscid) {
                this.pscid = pscid;
            }

            public int getSelected() {
                return selected;
            }

            public void setSelected(int selected) {
                this.selected = selected;
            }

            public int getSellerid() {
                return sellerid;
            }

            public void setSellerid(int sellerid) {
                this.sellerid = sellerid;
            }

            public String getSubhead() {
                return subhead;
            }

            public void setSubhead(String subhead) {
                this.subhead = subhead;
            }

            public String getTitle() {
                return title;
            }

            public void setTitle(String title) {
                this.title = title;
            }
        }
    }
}

-------------------------------------------------------------------------------------------------

adapter

public class ExpandableAdapter extends BaseExpandableListAdapter {
    private static final String TAG = "ExpandableAdapter";
    private Context context;
    private List<CartBean.DataBean> list;

    public ExpandableAdapter(Context context) {
        this.context = context;
        this.list = new ArrayList<>();
    }
    public void addDataList(List<CartBean.DataBean> dataBeans){
        list.addAll(dataBeans);
        notifyDataSetChanged();
    }
    public void getgroup(ExpandableListView listView) {
        for (int i = 0; i < getGroupCount(); i++) {
            listView.expandGroup(i);
        }
    }

    @Override
    public int getGroupCount() {
        Log.d(TAG, "getGroupCount: "+list.size());
        return list.size();
    }

    @Override
    public int getChildrenCount(int i) {
        Log.d(TAG, "getChildrenCount: "+list.get(i).getList().size());
        return list.get(i).getList().size();
    }

    @Override
    public CartBean.DataBean getGroup(int i) {
        return list.get(i);
    }

    @Override
    public CartBean.DataBean.ListBean getChild(int i, int i1) {
        return list.get(i).getList().get(i1);
    }

    @Override
    public long getGroupId(int i) {
        CartBean.DataBean group = getGroup(i);
        return group.getGetId();
    }

    @Override
    public long getChildId(int i, int i1) {
        CartBean.DataBean.ListBean child = getChild(i, i1);
        return child.getSellerid();
    }

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

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

        final oneviewholder holder;
        if(view==null){
            view= View.inflate(context, R.layout.shop_left_base,null);
            holder = new oneviewholder();
            holder.Shop_Left_text =view.findViewById(R.id.shop_left_text);
            holder.z_box = view.findViewById(R.id.ex_box);
            view.setTag(holder);

        }else{
            holder = (oneviewholder) view.getTag();
        }
        CartBean.DataBean data = list.get(i);
        boolean check = data.isCheck();


        holder.z_box.setChecked(check);

        holder.Shop_Left_text.setText(list.get(i).getSellerName());
        holder.z_box.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                shopClick.groupChecked(i,holder.z_box.isChecked());
            }
        });

        return view;
    }

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

         final twoviewholder holder;
        if(view==null){
            view= View.inflate(context, R.layout.shop_right_base,null);
            holder = new twoviewholder();
            holder.Shop_Right_text =view.findViewById(R.id.shop_Right_text);
            holder.Shop_Right_text1 =view.findViewById(R.id.shop_Right_text1);
            holder.child_jian = view.findViewById(R.id.child_jian);
            holder.child_jia = view.findViewById(R.id.child_jia);
            holder.child_num = view.findViewById(R.id.child_num);
            holder.child_box = view.findViewById(R.id.child_box);



            holder.shop_Right_image= view.findViewById(R.id.shop_right_image);
            view.setTag(holder);

        }else{
            holder = (twoviewholder) view.getTag();
        }

        holder.Shop_Right_text.setText(list.get(i).getList().get(i1).getTitle());
        holder.Shop_Right_text1.setText("¥"+list.get(i).getList().get(i1).getPrice()+"");
        String images = list.get(i).getList().get(i1).  getImages();
        String s = images.split("\\|")[0];
        Uri parse = Uri.parse(s);
        holder.shop_Right_image.setImageURI(parse);
        holder.child_box.setChecked(list.get(i).getList().get(i1).isChildCheck());
        if(list.get(i).getList().get(i1).getNum() == 1){
            holder.child_jian.setEnabled(false);
        } else{
            holder.child_jian.setEnabled(true);
        }

        holder.child_num.setText(list.get(i).getList().get(i1).getNum()+"");

        holder.child_jia.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                shopClick.addNum(i,i1);

            }
        });
        holder.child_jian.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                shopClick.deleteNum(i,i1);
            }
        });
        holder.child_box.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                shopClick.childChecked(i,i1,holder.child_box.isChecked());

            }
        });

        return view;
    }

    @Override
    public boolean isChildSelectable(int i, int i1) {
        return true;
    }
    class oneviewholder{
        CheckBox z_box;
        TextView Shop_Left_text;
    }
    class twoviewholder{
        SimpleDraweeView shop_Right_image;
        TextView Shop_Right_text,Shop_Right_text1,child_num;
        Button child_jian,child_jia;
        CheckBox child_box;
    }
    //1:
     ExShopClick shopClick;

    public void setShopClick(ExShopClick shopClick){
        this.shopClick = shopClick;
    }

    public interface ExShopClick{

        //添加数量
        void addNum(int group,int child);
        //减少数量
        void deleteNum(int group,int child);

        //子项复选框选中状态
        void childChecked(int group,int child,boolean checked);

        //父项复选框选中状态
        void groupChecked(int group,boolean checked);
    }
}

--------------------------------------------------------------------------------------------------------

fragment

public class ShopFragment extends Fragment implements ICartView,ExpandableAdapter.ExShopClick{

    private CartPresenter cartPresenter;
    private ExpandableListView shop_expandable;
    private ExpandableAdapter adapter;
    private CheckBox allBox;
    private TextView allPrice;
    private Button jiesuan;
    private List<CartBean.DataBean> data;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.shopfragment,container,false);
        shop_expandable = view.findViewById(R.id.shop_expandable);
        cartPresenter =new CartPresenter(this);
        cartPresenter.getCart(  "4243");
        allBox= view.findViewById(R.id.all_box);
        allPrice = view.findViewById(R.id.all_price);
        jiesuan= view.findViewById(R.id.jiesuan);

        //创建适配器
        adapter = new ExpandableAdapter(getActivity());
        shop_expandable.setAdapter(adapter);
        
        //设置全选
        setAll();


        return view;
    }

    @Override
    public void setCart(CartBean cartBean) {

        data = cartBean.getData();


        getExShopAdapter();


    }
    private void getExShopAdapter() {



            adapter.addDataList(data);
            adapter.getgroup(shop_expandable);
            adapter.setShopClick(this);



    }




    private void setAll() {
        allBox.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(allBox.isChecked()){
                    for (int i= 0;i<data.size();i++){
                        CartBean.DataBean dataBean = data.get(i);

                        dataBean.setIscheck(true);

                        for (int j=0;j<dataBean.getList().size();j++){
                            List<CartBean.DataBean.ListBean> list = dataBean.getList();

                            list.get(j).setChildCheck(true);

                        }

                    }
                }else{

                    for (int i= 0;i<data.size();i++){
                        CartBean.DataBean dataBean = data.get(i);

                        dataBean.setIscheck(false);

                        for (int j=0;j<dataBean.getList().size();j++){
                            List<CartBean.DataBean.ListBean> list = dataBean.getList();

                            list.get(j).setChildCheck(false);

                        }

                    }
                }

                getPrices();
            }
        });
    }







    @Override
    public void addNum(int group, int child) {

        List<CartBean.DataBean.ListBean> list = data.get(group).getList();

        int num = list.get(child).getNum();

        num++;

        list.get(child).setNum(num);

        //调用计算总价方法

        getPrices();

        //调用刷新适配器方法

        getExShopAdapter();
    }
    private void getPrices() {
        int price = 0;
        int num = 0;

        for (int i = 0; i < data.size(); i++) {
            //得到父类list

            List<CartBean.DataBean.ListBean> list = data.get(i).getList();
            //循环遍历得到子类list

            for (int j = 0; j < list.size(); j++) {

                //如果子list全选中时计算总价

                if (list.get(j).isChildCheck()) {
                    //计算总价方法
                    price += list.get(j).getNum() * list.get(j).getPrice();
                    num += list.get(j).getNum();
                }
            }
            //赋值总价
            allPrice.setText("¥"+price+"");
            jiesuan.setText("结算("+num+")");

        }


        getExShopAdapter();

    }

    @Override
    public void deleteNum(int group, int child) {
        List<CartBean.DataBean.ListBean> list = data.get(group).getList();

        int num = list.get(child).getNum();

        num--;

        if (num == 1) {
            Toast.makeText(getActivity(), "数量已经为1无法继续减少", Toast.LENGTH_SHORT).show();
        }
        //设置数量
        list.get(child).setNum(num);

        getPrices();


    }

    @Override
    public void childChecked(int group, int child, boolean checked) {

        List<CartBean.DataBean.ListBean> list = data.get(group).getList();

        list.get(child).setChildCheck(checked);

        boolean b = setAllCheckBox(group);

        if (b) {
            data.get(group).setIscheck(true);
        } else {
            data.get(group).setIscheck(false);
        }

        getPrices();

    }

    private boolean setAllCheckBox(int group) {

        List<CartBean.DataBean.ListBean> list = data.get(group).getList();

        for (int i = 0; i < list.size(); i++) {
            if (!list.get(i).isChildCheck()) {
                return false;
            }
        }
        return true;
    }

    @Override
    public void groupChecked(int group, boolean checked) {
        CartBean.DataBean dataBean = data.get(group);
        dataBean.setIscheck(checked);
        if (dataBean.isCheck()) {
            List<CartBean.DataBean.ListBean> list = dataBean.getList();

            for (int i = 0; i < list.size(); i++) {
                list.get(i).setChildCheck(true);
            }

        } else {
            List<CartBean.DataBean.ListBean> list = dataBean.getList();

            for (int i = 0; i < list.size(); i++) {
                list.get(i).setChildCheck(false);
            }
        }
        getPrices();

    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值