购物车

  implementation 'org.greenrobot:eventbus:3.1.1'   

private ExpandableListView elv;

    private CheckBox checkbox2;
    private TextView tvPrice;
    private TextView tvNum;
    private View inflate;
    private String token;
    private FourPersenter fourPersenter;
    private int uid;
    private SmartRefreshLayout smart;


    private List<Jiesuan> listdate;
    private List<ShoppingBean.DataBean> date;
    private DeletePersenter deletePersenter;
    private SharedPreferences user;
    private IBasePersenter iBasePersenter;
    private static final String TAG = "FourFragment";
    String str = "https://www.zhaoapi.cn/product/getCarts?uid=";
    private List<ShoppingBean.DataBean> data;
    private List<ShoppingBean.DataBean> dataall=new ArrayList<>();
    private ShoppingAdapter shoppingAdapter;
    Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if (msg.what == 1) {
                Gson gson = new Gson();
                String obj = (String) msg.obj;
                if (obj!=null){
                    ShoppingBean shoppingBean = gson.fromJson(obj, ShoppingBean.class);
                    if (shoppingBean != null) {
                        dataall.clear();
                        data = shoppingBean.getData();
                        if (data!=null){
                            dataall.addAll(data);
                            if (shoppingAdapter == null) {
                                shoppingAdapter = new ShoppingAdapter(dataall, getActivity());
                                elv.setAdapter(shoppingAdapter);
                                elv.setGroupIndicator(null);
                                for (int i = 0; i < shoppingAdapter.getGroupCount(); i++) {
                                    elv.expandGroup(i);
                                }
                                return;
                            } else {
                                shoppingAdapter.getDate(data);
                                shoppingAdapter.notifyDataSetChanged();
                            }
                        }
                        }


                }
              else {
                    //jlj
                }
            }
        }
    };




    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        inflate = inflater.inflate(R.layout.shopping, container, false);
        EventBus.getDefault().register(this);
        initView();
        return inflate;
    }


    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        initView();
    }




    private void initView() {
        user = getActivity().getSharedPreferences("user", Context.MODE_PRIVATE);


        boolean bool = user.getBoolean("bool", false);
        uid = user.getInt("uid", 1);
        token = user.getString("token", "s");
        elv = (ExpandableListView) inflate.findViewById(R.id.elv);
        checkbox2 = (CheckBox) inflate.findViewById(R.id.checkbox2);
        tvPrice = (TextView) inflate.findViewById(R.id.tv_price);
        tvNum = (TextView) inflate.findViewById(R.id.tv_num);
        smart = inflate.findViewById(R.id.smart);
        deletePersenter = new DeletePersenter();
        deletePersenter.LoadFormDate(this);


        //点击group可以无反应
        elv.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {


            @Override
            public boolean onGroupClick(ExpandableListView parent, View v,
                                        int groupPosition, long id) {
                // TODO Auto-generated method stub
                return true;
            }
        });
        checkbox2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                shoppingAdapter.selectAll(checkbox2.isChecked());
                shoppingAdapter.selectAllCount();
            }
        });
        smart.setOnRefreshLoadMoreListener(new OnRefreshLoadMoreListener() {
            @Override
            public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
                refreshLayout.finishLoadMore(2000);
            }


            @Override
            public void onRefresh(@NonNull RefreshLayout refreshLayout) {
                refreshLayout.finishRefresh(2000);
                getDate();
            }
        });
        fourPersenter = new FourPersenter();
        fourPersenter.loadDate(this);
        if (bool) {
getDate();
        } else {
            Toast.makeText(getActivity(), "哥们,请登录", Toast.LENGTH_SHORT).show();


        }
    }
public void getDate(){
    fourPersenter.getDate(str + uid );




}
    @Override
    public void onResume() {
        super.onResume();
        initView();
        getDate();
    }


    @Override
    public void onscuess(String s) {
        if (s.equals("")) {
        } else {
            Message message = handler.obtainMessage();
            message.what = 1;
            message.obj = s;
            handler.sendMessage(message);
        }
    }


    @Override
    public void onscuess() {
        Toast.makeText(getActivity(), "商品已删除", Toast.LENGTH_SHORT).show();
        fourPersenter.getDate(str+ uid );
        shoppingAdapter.notifyDataSetChanged();
    }


    @Subscribe(threadMode = ThreadMode.MAIN)
    public void itDate(ENventBus eventBus) {
        checkbox2.setChecked(eventBus.isQuanxuan());
        tvPrice.setText(eventBus.getPrice() + "");
        tvNum.setText("结算" + eventBus.getCount());
        HashMap<String, String> man = new HashMap<>();
        man.put("uid", uid + "");
        man.put("pid", eventBus.getPid() + "");
        man.put("token", token);
        deletePersenter.getDAte(man);




    }


    @Subscribe(threadMode = ThreadMode.MAIN)
    public void itclass(EnventClass eventBus) {
        final List<ShoppingBean.DataBean> list = eventBus.getList();
        listdate = new ArrayList<>();
        tvNum.setOnClickListener(new View.OnClickListener() {
            private Jiesuan jiesuan;


            @Override
            public void onClick(View view) {
                for (int i = 0; i < list.size(); i++) {
                    for (int j = 0; j < list.get(i).getList().size(); j++) {
                        if (list.get(i).getList().get(j).isIscheck()) {
                            jiesuan = new Jiesuan(list.get(i).getSellerName(), list.get(i).getList().get(j).getImages(), list.get(i).getList().get(j).getTitle(), list.get(i).getList().get(j).getPrice() + "", list.get(i).getList().get(j).getNum() + "");
                            listdate.add(jiesuan);
                        }
                    }




                }
                        EnventDingdan enventDingdan = new EnventDingdan();
                        enventDingdan.setListdate(listdate);
                        EventBus.getDefault().postSticky(enventDingdan);
                        Intent intent = new Intent(getActivity(), Dress.class);
                        startActivity(intent);
                    }


            




        });
    }




    @Override
    public void onDestroy() {
        super.onDestroy();
        EventBus.getDefault().unregister(this);
    }

}

adapter

public class ShoppingAdapter extends BaseExpandableListAdapter implements View.OnClickListener {
    List<ShoppingBean.DataBean> list;
    Context context;
    private ENventBus eNventBus;
    ViewHoderChild viewHoderChild;


    public ShoppingAdapter(List<ShoppingBean.DataBean> list, Context context) {
        this.list = list;
        this.context = context;
    }
  public void getDate(List<ShoppingBean.DataBean> list){
        this.list=list;
  }
    @Override
    public int getGroupCount() {
        return list.size();
    }


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


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


    @Override
    public Object getChild(int i, int i1) {
        return list.get(i).getList().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(int i, boolean b, View view, ViewGroup viewGroup) {
        ViewHoderGroup viewHoderGroup;
        if (view == null) {
            view = View.inflate(context, R.layout.shopp_group, null);
            viewHoderGroup = new ViewHoderGroup();
            viewHoderGroup.cbParent = (CheckBox) view.findViewById(R.id.cb_parent);
            viewHoderGroup.tvSign = (TextView) view.findViewById(R.id.tv_sign);
            view.setTag(viewHoderGroup);
        } else {
            viewHoderGroup = (ViewHoderGroup) view.getTag();
        }
        viewHoderGroup.cbParent.setChecked(list.get(i).isIscheck());
        viewHoderGroup.tvSign.setText(list.get(i).getSellerName());
        String str = i + "";
        viewHoderGroup.cbParent.setOnClickListener(this);
        viewHoderGroup.cbParent.setTag(str);
        return view;
    }


    @Override
    public View getChildView(int i, int i1, boolean b, View view, ViewGroup viewGroup) {
        if (view == null) {
            view = View.inflate(context, R.layout.shopp_child, null);
            viewHoderChild = new ViewHoderChild();
            viewHoderChild.cbChild = (CheckBox) view.findViewById(R.id.cb_child);
            viewHoderChild.tvTel = (TextView) view.findViewById(R.id.tv_tel);
            viewHoderChild.tvContent = (TextView) view.findViewById(R.id.tv_content);
            viewHoderChild.tvPri = (TextView) view.findViewById(R.id.tv_pri);
            viewHoderChild.ivDel = (ImageView) view.findViewById(R.id.iv_del);
            viewHoderChild.tvNum = (TextView) view.findViewById(R.id.iv_num);
            viewHoderChild.ivAdd = (ImageView) view.findViewById(R.id.iv_add);
            viewHoderChild.shoppimg = (ImageView) view.findViewById(R.id.shoppimg);
            viewHoderChild.delete1 = (TextView) view.findViewById(R.id.delete1);
            view.setTag(viewHoderChild);
        } else {
            viewHoderChild = (ViewHoderChild) view.getTag();
        }
        viewHoderChild.cbChild.setChecked(list.get(i).getList().get(i1).isIscheck());
        viewHoderChild.tvTel.setText(list.get(i).getList().get(i1).getTitle());
        viewHoderChild.tvContent.setText(list.get(i).getList().get(i1).getSubhead());
        viewHoderChild.tvPri.setText(list.get(i).getList().get(i1).getPrice() + "");
        viewHoderChild.tvNum.setText(list.get(i).getList().get(i1).getNum() + "");
        viewHoderChild.ivAdd.setOnClickListener(this);
        viewHoderChild.ivDel.setOnClickListener(this);
        viewHoderChild.delete1.setOnClickListener(this);
        String images = list.get(i).getList().get(i1).getImages();
        String[] split = images.split("\\|");
        for (int j = 0; j < split.length; j++) {
            Glide.with(context).load(split[j]).into(viewHoderChild.shoppimg);
        }


        String tag = i + "," + i1;
        viewHoderChild.cbChild.setTag(tag);
        viewHoderChild.cbChild.setOnClickListener(this);
        viewHoderChild.delete1.setTag(tag);
        return view;
    }


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


    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.cb_child:
                CheckBox cbChild = (CheckBox) view;
                String i = cbChild.getTag().toString();
                String[] split = i.split(",");
                Integer group = Integer.valueOf(split[0]);
                Integer child = Integer.valueOf(split[1]);
                list.get(group).getList().get(child).setIscheck(cbChild.isChecked());
                EnventClass enventClass = new EnventClass();
                enventClass.setList(list);
                EventBus.getDefault().post(enventClass);
                boolean flag = true;
                for (int j = 0; j < list.get(group).getList().size(); j++) {
                    if (!list.get(group).getList().get(j).isIscheck()) {
                        flag = false;
                    }
                }
                selectAllCount();


                list.get(group).setIscheck(flag);
                notifyDataSetChanged();




                break;


            case R.id.cb_parent:
                CheckBox cb_parent = (CheckBox) view;
                String s = cb_parent.getTag().toString();
                Integer paentgroup = Integer.valueOf(s);
                list.get(paentgroup).setIscheck(cb_parent.isChecked());
                boolean ischeck = list.get(paentgroup).isIscheck();
                //点击group  child全选
                //group改变 chikd随着改变就行 所以把group的boolren赋给child
                for (int j = 0; j < list.get(paentgroup).getList().size(); j++) {
                    list.get(paentgroup).getList().get(j).setIscheck(ischeck);
                    notifyDataSetChanged();
                }
                boolean groupflag = true;
                for (int j = 0; j < list.size(); j++) {
                    if (!list.get(j).isIscheck()) {
//              ENventBus eNventBus = new ENventBus();
//              eNventBus.setQuanxuan(true);
                        groupflag = false;
                    }
                    eNventBus = new ENventBus();
                    eNventBus.setQuanxuan(groupflag);
                    EventBus.getDefault().post(eNventBus);
                    selectAllCount();
                    notifyDataSetChanged();
                }


                break;
            case R.id.iv_add:


                break;
            case R.id.delete1:
                TextView del = (TextView) view;
                String ii = del.getTag().toString();
                String[] split1 = ii.split(",");
                Integer group1 = Integer.valueOf(split1[0]);
                Integer child1 = Integer.valueOf(split1[1]);
                eNventBus = new ENventBus();
                eNventBus.setPid(list.get(group1).getList().get(child1).getPid());
                EventBus.getDefault().post(eNventBus);
//                删除子条目中的数据
//                if (子条目.size() == 0) {
//                    删除父条目
//                }
//                notifyDataSetChanged();
                break;
        }
    }


    public void selectAllCount() {
        int Count = 0;
        int pricecount = 0;
        for (int i = 0; i < list.size(); i++) {
            for (int j = 0; j < list.get(i).getList().size(); j++) {
                if (list.get(i).getList().get(j).isIscheck()) {
                    double price = list.get(i).getList().get(j).getPrice();
                    int num = list.get(i).getList().get(j).getNum();
                    pricecount += price;
                    Count += num;
                }
            }
        }
        eNventBus = new ENventBus();
        eNventBus.setCount(Count);
        eNventBus.setPrice(pricecount * Count);
        EventBus.getDefault().post(eNventBus);
    }


    class ViewHoderChild {
        private CheckBox cbChild;
        private TextView tvTel;
        private TextView tvContent;
        private TextView tvTime;
        private TextView tvPri;
        private ImageView ivDel;
        private TextView tvNum;
        private ImageView ivAdd;
        private TextView tvDel;
        private ImageView shoppimg;
        private TextView delete1;




    }


    class ViewHoderGroup {
        private CheckBox cbParent;
        private TextView tvSign;
        private TextView tvNumber;
    }


    public void selectAll(boolean flag) {
        for (int j = 0; j < list.size(); j++) {
            for (int i = 0; i < list.get(j).getList().size(); i++) {
                list.get(j).setIscheck(flag);
                list.get(j).getList().get(i).setIscheck(flag);
                notifyDataSetChanged();
            }


        }
        notifyDataSetChanged();
    }

}

eventbus:

 

 

 

public class ENventBus {

    private boolean quanxuan;

private  int count;

private int price;

private  int pid;

 

    public int getPid() {

        return pid;

    }

 

    public void setPid(int pid) {

        this.pid = pid;

    }

 

    public int getPrice() {

        return price;

    }

 

    public void setPrice(int price) {

        this.price = price;

    }

 

    public int getCount() {

        return count;

    }

 

    public void setCount(int count) {

        this.count = count;

    }

 

    public boolean isQuanxuan() {

        return quanxuan;

    }

 

    public void setQuanxuan(booleanquanxuan) {

        this.quanxuan = quanxuan;

    }

 

 

}

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值