android 购物车 listview嵌套问题

来源:互联网 发布:西安交大网络教育官网 编辑:程序博客网 时间:2024/06/04 18:05

该购物车使用3个listview嵌套完成,具有3级分类:仓库、商铺、商家,效果图如下:

扫描关注我的微信公众号:




代码直接贴出来:

package com.globex.o2o.controllers.shoppingCart;import android.content.DialogInterface;import android.content.Intent;import android.graphics.Color;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.widget.SwipeRefreshLayout;import android.support.v7.app.AlertDialog;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.CheckBox;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.ListView;import android.widget.ProgressBar;import android.widget.RelativeLayout;import android.widget.TextView;import android.widget.Toast;import com.globex.core.android.utils.ViewUtils;import com.globex.core.common.utils.JsonUtils;import com.globex.o2o.R;import com.globex.o2o.Utils.CommonUtils;import com.globex.o2o.Utils.ResponseUtils;import com.globex.o2o.constants.Api;import com.globex.o2o.controllers.BaseFragment;import com.globex.o2o.controllers.order.VerifyOrder;import com.globex.o2o.http.DefaultStringCallBack;import com.google.gson.Gson;import com.zhy.http.okhttp.OkHttpUtils;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import org.xutils.x;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import de.greenrobot.event.EventBus;import okhttp3.Call;public class ShoppingCartFragment extends BaseFragment {    private ListView mListView;// 列表    private View rootView;    private ProgressBar pb;    private boolean isEdit = false;    Gson gson = new Gson();    /**     * 解析数据     */    private List<String> wareHouseList = new ArrayList<>();    private List<Goods> selectGoods = new ArrayList<>();    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        if (rootView == null) {            rootView = inflater.inflate(R.layout.fragment_shoppingcar_layout, null);        }        initView();        initListener();        return rootView;    }    private float selectTotalPrice, selectTotalTax;    //EventBus处理函数    public void onEvent(EBMassage msg) {        ArrayList<Goods> goodList = msg.getGoodList();        int what = msg.getWhat();        //商品添加        for (int i = 0; i < goodList.size(); i++) {            Goods goods = goodList.get(i);            if (what == 1) {                if (selectGoods.contains(goods)) {                    selectGoods.remove(goods);                }                selectGoods.add(goods);            }            if (what == 2) {                selectGoods.remove(goods);            }        }        reflashBalance();        reflash();    }    private SwipeRefreshLayout swipeRefreshLayout;    private TextView shoppingcar_subtitle, shoppingcar_txtv_submit, shoppingcar_txtv_tollPrice, shoppingcar_txtv_tax;    private CheckBox shoppingcar_check_box_all;    private RelativeLayout empty_view;    //初始化视图    public void initView() {        pb = (ProgressBar) rootView.findViewById(R.id.shoppingcar_pb);        empty_view = (RelativeLayout) rootView.findViewById(R.id.shoppingcar_rl_empty);        //下拉刷新        swipeRefreshLayout = (SwipeRefreshLayout) rootView.findViewById(R.id.shoppingCar_swipeRefreshLayout);        swipeRefreshLayout.setColorSchemeColors(Color.RED, Color.GREEN, Color.BLUE, Color.CYAN);        mListView = (ListView) rootView.findViewById(R.id.listview);        firstAdapter = new FirstListViewAdapter();        mListView.setAdapter(firstAdapter);        adapterList.add(firstAdapter);        shoppingcar_subtitle = (TextView) rootView.findViewById(R.id.shoppingcar_subtitle);        shoppingcar_check_box_all = (CheckBox) rootView.findViewById(R.id.shoppingcar_check_box_all);        shoppingcar_txtv_submit = (TextView) rootView.findViewById(R.id.shoppingcar_txtv_submit);        shoppingcar_txtv_tollPrice = (TextView) rootView.findViewById(R.id.shoppingcar_txtv_tollPrice);        shoppingcar_txtv_tax = (TextView) rootView.findViewById(R.id.shoppingcar_txtv_tax);    }    //初始化监听器    public void initListener() {        swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {            @Override            public void onRefresh() {                loadData();            }        });        //全选Checkbox        shoppingcar_check_box_all.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                //全选                selectAllB();            }        });        //右上角的文字        shoppingcar_subtitle.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                if (!empty_view.isShown()) {                    shoppingcar_subtitle.setTextColor(Color.WHITE);                } else {                    shoppingcar_subtitle.setText("编辑");                    shoppingcar_subtitle.setTextColor(Color.GRAY);                    return;                }                if (shoppingcar_subtitle.getText().equals("编辑")) {                    shoppingcar_subtitle.setText("完成");                    isEdit = true;                } else {                    shoppingcar_subtitle.setText("编辑");                    isEdit = false;                    loadData();                }                reflash();            }        });        //提交        shoppingcar_txtv_submit.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                submit();            }        });    }    //加载数    private void loadData() {        if (!CommonUtils.getHttpHeadParams(getActivity()).containsKey("tk")) {            return;        }        pb.setVisibility(View.VISIBLE);        wareHouseList.clear();        cSellerList.clear();        cGoodsList.clear();        OkHttpUtils                .get()                .headers(CommonUtils.getHttpHeadParams(getApplication()))                .url(getUrl(Api.getShoppingCar))                .build()                .execute(new DefaultStringCallBack() {                    @Override                    public void onResponse(String response) {                        pb.setVisibility(View.GONE);                        swipeRefreshLayout.setRefreshing(false);                        try {                            JSONObject object = new JSONObject(response);                            if (object.getInt("code") == 200) {                                parseJson(object);                                reflash();                            } else {                                ResponseUtils.checkTokenOfShoppingCar(getActivity(), object.getInt("code"));                            }                        } catch (JSONException e) {                            e.printStackTrace();                        }                    }                    @Override                    public void onError(Call call, Exception e) {                        pb.setVisibility(View.GONE);                        swipeRefreshLayout.setRefreshing(false);                        Toast.makeText(getApplication(), "获取购物车失败,错误信息:" + e.getMessage(), Toast.LENGTH_SHORT).show();                    }                });    }    //刷新结算信息    private void reflashBalance() {        selectTotalPrice = 0;        selectTotalTax = 0;        for (int i = 0; i < selectGoods.size(); i++) {            selectTotalPrice += selectGoods.get(i).getTotal_price();            selectTotalTax += selectGoods.get(i).getTotal_tax();        }        shoppingcar_txtv_submit.setText("结算(" + selectGoods.size() + ")");        shoppingcar_txtv_tollPrice.setText("¥" + selectTotalPrice);        shoppingcar_txtv_tax.setText("(含关税:¥" + selectTotalTax + ",不含运费)");    }    private FirstListViewAdapter firstAdapter;    private List<List<Seller>> cSellerList = new ArrayList<>();    private List<List<ArrayList<Goods>>> cGoodsList = new ArrayList<>();    //保存选中的状态    private List<HashMap<String, HashMap<Integer, Boolean>>> itemIsChecked = new ArrayList<>();    private List<ArrayList<Boolean>> subIsChecked = new ArrayList<>();    private HashMap<String, Boolean> listState = new HashMap<>();    private String info;    private boolean isEdited = false;    /**     * 解析数据     *     * @throws JSONException     */    private void parseJson(JSONObject obj) throws JSONException {        isEdit = false;        isEdited = false;        shoppingcar_subtitle.setText("编辑");        cGoodsList.clear();        cSellerList.clear();        wareHouseList.clear();        JSONObject data = obj.getJSONObject("data");        info = obj.getString("info");        if (data.length() == 0) {            shoppingcar_subtitle.setTextColor(Color.GRAY);            shoppingcar_subtitle.setText("编辑");            empty_view.setVisibility(View.VISIBLE);            ((TextView) rootView.findViewById(R.id.shoppingcar_txtv_noids)).setText(obj.getString("info"));            ((RelativeLayout) rootView.findViewById(R.id.bottom_bar)).setVisibility(View.GONE);            return;        } else {            shoppingcar_subtitle.setTextColor(Color.WHITE);            empty_view.setVisibility(View.GONE);            ((RelativeLayout) rootView.findViewById(R.id.bottom_bar)).setVisibility(View.VISIBLE);        }        JSONArray arr = data.getJSONArray("cart_list");        for (int i = 0; i < arr.length(); i++) {            JSONObject obj1 = arr.getJSONObject(i);            wareHouseList.add(obj1.getString("warehouse"));            JSONArray content = obj1.getJSONArray("content");            List<Seller> sellerList = new ArrayList<>();            List<ArrayList<Goods>> goodsList = new ArrayList<>();            HashMap<String, HashMap<Integer, Boolean>> isCd = new HashMap<>();            ArrayList<Boolean> checkBoxes = new ArrayList<>();            for (int j = 0; j < content.length(); j++) {                JSONObject obj2 = content.getJSONObject(j);                JSONObject seller = obj2.getJSONObject("seller");                Seller seller1 = gson.fromJson(seller.toString(), Seller.class);                sellerList.add(seller1);                JSONArray goodsarr = obj2.getJSONArray("goods");                ArrayList<Goods> goodses = new ArrayList<>();                HashMap<Integer, Boolean> isC = new HashMap<>();                for (int k = 0; k < goodsarr.length(); k++) {                    JSONObject goods = goodsarr.getJSONObject(k);                    Goods goods1 = gson.fromJson(goods.toString(), Goods.class);                    goodses.add(goods1);                    isC.put(goods1.getCart_id(), false);                }                checkBoxes.add(false);                isCd.put(seller1.getName(), isC);                goodsList.add(goodses);            }            if (!listState.containsKey(obj1.getString("warehouse"))) {                listState.put(obj1.getString("warehouse"), false);            }            subIsChecked.add(checkBoxes);            itemIsChecked.add(isCd);            cGoodsList.add(goodsList);            cSellerList.add(sellerList);        }    }    //第一个Adapter    class FirstListViewAdapter extends BaseAdapter {        @Override        public int getCount() {            return wareHouseList.size();        }        @Override        public Object getItem(int position) {            return position;        }        @Override        public long getItemId(int position) {            return position;        }        @Override        public View getView(final int position, View convertView, ViewGroup parent) {            final List<ArrayList<Goods>> cl = cGoodsList.get(position);            final FirstListViewHolder holder;            final HashMap<String, HashMap<Integer, Boolean>> arrayLists = itemIsChecked.get(position);            final ArrayList<Boolean> state = subIsChecked.get(position);            if (convertView == null) {                holder = new FirstListViewHolder();                convertView = LayoutInflater.from(getActivity()).inflate(R.layout.shoppingcarfragment_listviewitem1, null);                holder.lv = (ListView) convertView.findViewById(R.id.shopping_subListView);                holder.ck = (CheckBox) convertView.findViewById(R.id.shoppingcar_sub_checbox);                holder.warehouse = (TextView) convertView.findViewById(R.id.listViewItem1_warehouse);                SubAdapter subAdapter = new SubAdapter(cSellerList.get(position), cl, arrayLists, state, position);                adapterList.add(subAdapter);                holder.lv.setAdapter(subAdapter);                ViewUtils.setListViewHeightBasedOnChildren(holder.lv);                convertView.setTag(holder);            } else {                holder = (FirstListViewHolder) convertView.getTag();            }            holder.ck.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    boolean checked = holder.ck.isChecked();                    listState.put(wareHouseList.get(position), checked);                    //通知子改变状态                    for (int i = 0; i < state.size(); i++) {                        state.set(i, checked);                    }                    //通知孙改变状态                    Iterator<Map.Entry<String, HashMap<Integer, Boolean>>> iterator1 = arrayLists.entrySet().iterator();                    while (iterator1.hasNext()) {//                    for (int i = 0; i < arrayLists.size(); i++) {                        HashMap<Integer, Boolean> list = iterator1.next().getValue();//                        for (int j = 0; j < list.size(); j++) {//                            list.set(j, checked);//                        }                        Iterator<Map.Entry<Integer, Boolean>> iterator = list.entrySet().iterator();                        while (iterator.hasNext()) {                            Map.Entry<Integer, Boolean> next = iterator.next();                            next.setValue(checked);                        }                    }                    //改变全选的状态                    if (listState.containsValue(false)) {                        shoppingcar_check_box_all.setChecked(false);                    } else {                        shoppingcar_check_box_all.setChecked(true);                    }                    //刷新数据                    reflash();                    //勾选商品变化                    for (int i = 0; i < cl.size(); i++) {                        ArrayList<Goods> goodses = cl.get(i);                        for (int j = 0; j < goodses.size(); j++) {                            if (checked) {                                EventBus.getDefault().post(new EBMassage(goodses, 1));                            } else {                                EventBus.getDefault().post(new EBMassage(goodses, 2));                            }                        }                    }                }            });            holder.warehouse.setText(wareHouseList.get(position));            holder.ck.setChecked(listState.get(wareHouseList.get(position)));            return convertView;        }    }    private List<Boolean> subStatus;    //第二个Adapter    class SubAdapter extends BaseAdapter {        private List<Seller> datas;        private List<ArrayList<Goods>> clist;        private HashMap<String, HashMap<Integer, Boolean>> misC;        int p;        @Override        public int getCount() {            return datas.size();        }        public SubAdapter(List data, List<ArrayList<Goods>> cl, HashMap<String, HashMap<Integer, Boolean>> isC, ArrayList<Boolean> state, int p0) {            datas = data;            p = p0;            clist = cl;            misC = isC;            subStatus = state;        }        @Override        public Object getItem(int position) {            return position;        }        @Override        public long getItemId(int position) {            return position;        }        @Override        public View getView(final int position, View convertView, ViewGroup parent) {            if (clist.get(position).size() == 0) {                View inflate = LayoutInflater.from(getActivity()).inflate(R.layout.sublistview, null);                inflate.findViewById(R.id.sub_root_view).setVisibility(View.GONE);                return inflate;            }            final SubListViewHolder holder;            SubListView_ListViewAdapter subSubAdapter = null;            if (convertView == null) {                holder = new SubListViewHolder();                convertView = LayoutInflater.from(getActivity()).inflate(R.layout.sublistview, null);                holder.ck = (CheckBox) convertView.findViewById(R.id.sublistView_checbox);                holder.lv = (ListView) convertView.findViewById(R.id.sublistView_ListView);                holder.tvtv = (TextView) convertView.findViewById(R.id.subListview_sellerName);                convertView.setTag(holder);                if (misC.get(datas.get(position).getName()) == null) {                    misC.put(datas.get(position).getName(), new HashMap<Integer, Boolean>(100));                    subStatus.add(false);                }                subSubAdapter = new SubListView_ListViewAdapter(clist.get(position), misC.get(datas.get(position).getName()), position, p);                adapterList.add(subSubAdapter);                holder.lv.setAdapter(subSubAdapter);                ViewUtils.setListViewHeightBasedOnChildren(holder.lv);            } else {                holder = (SubListViewHolder) convertView.getTag();            }            holder.tvtv.setText(datas.get(position).getName());            holder.ck.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    boolean checked = holder.ck.isChecked();                    subStatus.set(position, checked);                    //使子checkbox也变状态//                    for (int j = 0; j < isC.size(); j++) {//                        isC.set(j, checked);//                    }                    Iterator<Map.Entry<Integer, Boolean>> iterator = misC.get(datas.get(position).getName()).entrySet().iterator();                    while (iterator.hasNext()) {                        Map.Entry<Integer, Boolean> next = iterator.next();                        next.setValue(checked);                    }                    //勾选商品变化                    if (checked) {                        EventBus.getDefault().post(new EBMassage(clist.get(position), 1));                    } else {                        EventBus.getDefault().post(new EBMassage(clist.get(position), 2));                    }                    //设置父类的状态                    if (subStatus.contains(false)) {                        listState.put(wareHouseList.get(p), false);                    } else {                        listState.put(wareHouseList.get(p), true);                    }                    //设置全选按钮的状态                    if (listState.containsValue(false)) {                        shoppingcar_check_box_all.setChecked(false);                    } else {                        shoppingcar_check_box_all.setChecked(true);                    }                    //刷新数据                    reflash();                }            });            holder.ck.setChecked(subStatus.get(position));            return convertView;        }    }    //第三个Adapter    class SubListView_ListViewAdapter extends BaseAdapter {        ArrayList<Goods> datas;        HashMap<Integer, Boolean> mIsChecked;        int p;        int ye;        @Override        public int getCount() {            return datas.size();        }        public SubListView_ListViewAdapter(ArrayList<Goods> data, HashMap<Integer, Boolean> isC, int po, int y) {            datas = data;            mIsChecked = isC;            p = po;            ye = y;        }        @Override        public Object getItem(int position) {            return position;        }        @Override        public long getItemId(int position) {            return position;        }        @Override        public View getView(final int position, View convertView, ViewGroup parent) {            final Goods goods = datas.get(position);            final ThreeListViewHolder holder;            if (null == convertView) {                holder = new ThreeListViewHolder();                convertView = LayoutInflater.from(getActivity()).inflate(R.layout.cart_list_item, null);                holder.ck = (CheckBox) convertView.findViewById(R.id.car_item_check_box);                holder.count = (TextView) convertView.findViewById(R.id.car_item_numbTxtv);                holder.imgv = (ImageView) convertView.findViewById(R.id.car_item_imgv);                holder.intro = (TextView) convertView.findViewById(R.id.car_item_intro);                holder.price = (TextView) convertView.findViewById(R.id.car_item_priceTxtv);                holder.tax = (TextView) convertView.findViewById(R.id.car_item_taxTxtv);                holder.shoppingcar_ll_tianshan = (LinearLayout) convertView.findViewById(R.id.shoppingcar_ll_tianshan);                holder.shoppingcar_txtv_jian = (TextView) convertView.findViewById(R.id.shoppingcar_txtv_jian);                holder.shoppingcar_txtv_add = (TextView) convertView.findViewById(R.id.shoppingcar_txtv_add);                holder.shoppingcar_edit = (TextView) convertView.findViewById(R.id.shoppingcar_edit);                convertView.setTag(holder);            } else {                holder = (ThreeListViewHolder) convertView.getTag();            }            if (isEdit) {                holder.ck.setOnClickListener(new View.OnClickListener() {                    @Override                    public void onClick(View v) {                        //删除商品                        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());                        builder.setTitle("确认删除?").setNegativeButton("删除", new DialogInterface.OnClickListener() {                            @Override                            public void onClick(DialogInterface dialog, int which) {                                delete(goods, datas, position);                            }                        }).setPositiveButton("否", null).show();                    }                });                holder.intro.setVisibility(View.GONE);                holder.tax.setVisibility(View.GONE);                holder.ck.setButtonDrawable(getResources().getDrawable(R.drawable.checkbox_delete));                holder.shoppingcar_ll_tianshan.setVisibility(View.VISIBLE);                //添加数量                holder.shoppingcar_txtv_add.setOnClickListener(new View.OnClickListener() {                    @Override                    public void onClick(View v) {                        holder.shoppingcar_edit.setText((Integer.parseInt(holder.shoppingcar_edit.getText().toString()) + 1) + "");                        editNumb(goods, Integer.parseInt(holder.shoppingcar_edit.getText().toString()));                    }                });                //减少数量                holder.shoppingcar_txtv_jian.setOnClickListener(new View.OnClickListener() {                    @Override                    public void onClick(View v) {                        int numb = Integer.parseInt(holder.shoppingcar_edit.getText().toString());                        if (numb == 1) {                            return;                        } else {                            holder.shoppingcar_edit.setText((numb - 1) + "");                        }                        editNumb(goods, Integer.parseInt(holder.shoppingcar_edit.getText().toString()));                    }                });            } else {                holder.ck.setButtonDrawable(getResources().getDrawable(R.drawable.check_box_bg));                holder.shoppingcar_ll_tianshan.setVisibility(View.GONE);                holder.intro.setVisibility(View.VISIBLE);                holder.tax.setVisibility(View.VISIBLE);                holder.intro.setText(goods.getName());                holder.tax.setText("适用税率:" + goods.getTotal_tax());                if (mIsChecked.get(goods.getCart_id()) != null) {                    holder.ck.setChecked((mIsChecked.get(goods.getCart_id())));                } else {                    mIsChecked.put(goods.getCart_id(), false);                }                holder.ck.setOnClickListener(new View.OnClickListener() {                                                 @Override                                                 public void onClick(View v) {                                                     ArrayList<Goods> arrayList = new ArrayList<>();                                                     arrayList.add(datas.get(position));                                                     if (holder.ck.isChecked()) {                                                         EventBus.getDefault().post(new EBMassage(arrayList, 1));                                                     } else {                                                         EventBus.getDefault().post(new EBMassage(arrayList, 2));                                                     }                                                     mIsChecked.put(goods.getCart_id(), holder.ck.isChecked());                                                     //设置父类的状态                                                     if (mIsChecked.containsValue(false)) {                                                         subStatus.set(p, false);                                                     } else {                                                         subStatus.set(p, true);                                                     }                                                     //设置爷类改变                                                     if (subStatus.contains(false)) {                                                         listState.put(wareHouseList.get(ye), false);                                                     } else {                                                         listState.put(wareHouseList.get(ye), true);                                                     }                                                     //设置全选状态                                                     if (listState.containsValue(false)) {                                                         shoppingcar_check_box_all.setChecked(false);                                                     } else {                                                         shoppingcar_check_box_all.setChecked(true);                                                     }                                                     reflash();                                                 }                                             }                );            }            holder.count.setText("X" + goods.getBuy_num());            holder.price.setText("¥" + goods.getCprice());            x.image().bind(holder.imgv, goods.getImage());            //设置父类的状态            if (mIsChecked.containsValue(false)) {                subStatus.set(p, false);            } else {                subStatus.set(p, true);            }            //设置爷类改变            if (subStatus.contains(false)) {                listState.put(wareHouseList.get(ye), false);            } else {                listState.put(wareHouseList.get(ye), true);            }            //设置全选状态            if (listState.containsValue(false)) {                shoppingcar_check_box_all.setChecked(false);            } else {                shoppingcar_check_box_all.setChecked(true);            }            reflash();            return convertView;        }    }    //删除物品    private void delete(final Goods goods, final ArrayList<Goods> datas, final int position) {        pb.setVisibility(View.VISIBLE);        //删除商品        OkHttpUtils.get().headers(CommonUtils.getHttpHeadParams(getApplication())).url(getUrl(Api.shoppingCarDelete) + "?cart_id=" + goods.getCart_id()).build().execute(new DefaultStringCallBack() {            @Override            public void onResponse(String response) {                pb.setVisibility(View.GONE);                try {                    int code = new JSONObject(response).getInt("code");                    if (code == Api.RESPONSE_CODE_SUCESS) {                        Toast.makeText(getApplication(), "删除成功!", Toast.LENGTH_SHORT).show();                        datas.remove(position);                        if (datas.size() == 0) {                            shoppingcar_subtitle.setText("编辑");                            loadData();                        }                        if (selectGoods.contains(goods)) {                            ArrayList<Goods> g = new ArrayList<>();                            g.add(goods);                            EventBus.getDefault().post(new EBMassage(g, 2));                        }                        reflash();                    } else {                        Toast.makeText(getApplication(), "删除出错,错误代码:" + code, Toast.LENGTH_SHORT).show();                    }                } catch (JSONException e) {                    e.printStackTrace();                }            }            @Override            public void onError(Call call, Exception e) {                pb.setVisibility(View.GONE);                Toast.makeText(getApplication(), "删除商品错误:" + e.getMessage(), Toast.LENGTH_SHORT).show();            }        });    }    @Override    public void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        if (resultCode == 110) {            selectGoods.clear();            itemIsChecked.clear();            subIsChecked.clear();            listState.clear();            shoppingcar_check_box_all.setChecked(false);            shoppingcar_txtv_submit.setText("结算(" + selectGoods.size() + ")");            shoppingcar_txtv_tollPrice.setText("¥0.00");            shoppingcar_txtv_tax.setText("(含关税:¥0,不含运费)");            reflash();        }    }    //保存所有的Adapter,用于刷新数据    private ArrayList<BaseAdapter> adapterList = new ArrayList<>();    //全选按钮    private void selectAllB() {        boolean checked = shoppingcar_check_box_all.isChecked();        for (int i = 0; i < itemIsChecked.size(); i++) {            HashMap<String, HashMap<Integer, Boolean>> arrayLists = itemIsChecked.get(i);            Iterator<Map.Entry<String, HashMap<Integer, Boolean>>> iterator1 = arrayLists.entrySet().iterator();            while (iterator1.hasNext()) {                HashMap<Integer, Boolean> booleen = iterator1.next().getValue();                Iterator<Map.Entry<Integer, Boolean>> iterator = booleen.entrySet().iterator();                while (iterator.hasNext()) {                    Map.Entry<Integer, Boolean> next = iterator.next();                    next.setValue(checked);                }            }        }        for (int i = 0; i < subIsChecked.size(); i++) {            ArrayList<Boolean> booleen = subIsChecked.get(i);            for (int j = 0; j < booleen.size(); j++) {                booleen.set(j, shoppingcar_check_box_all.isChecked());            }        }        for (int i = 0; i < listState.size(); i++) {            listState.put(wareHouseList.get(i), shoppingcar_check_box_all.isChecked());        }        if (checked) {            for (int i = 0; i < cGoodsList.size(); i++) {                List<ArrayList<Goods>> arrayLists = cGoodsList.get(i);                for (int j = 0; j < arrayLists.size(); j++) {                    ArrayList<Goods> goodses = arrayLists.get(j);                    EventBus.getDefault().post(new EBMassage(goodses, 1));                }            }        } else {            for (int i = 0; i < cGoodsList.size(); i++) {                List<ArrayList<Goods>> arrayLists = cGoodsList.get(i);                for (int j = 0; j < arrayLists.size(); j++) {                    ArrayList<Goods> goodses = arrayLists.get(j);                    EventBus.getDefault().post(new EBMassage(goodses, 2));                }            }        }    }    //提交商品    private void submit() {        if (selectGoods.size() == 0) {            Toast.makeText(getApplication(), "请选择商品", Toast.LENGTH_SHORT).show();            return;        }        pb.setVisibility(View.VISIBLE);        HashMap<String, ArrayList> params = new HashMap<>();        ArrayList<HashMap> list = new ArrayList<>();        params.put("buy_list", list);        for (int i = 0; i < selectGoods.size(); i++) {            Goods goods = selectGoods.get(i);            HashMap<String, String> goodsMap = new HashMap<>();            goodsMap.put("sku_id", goods.getSku_id() + "");            goodsMap.put("buy_num", goods.getBuy_num() + "");            goodsMap.put("cart_id", goods.getCart_id() + "");            goodsMap.put("comp_id", goods.getComp_id() + "");            goodsMap.put("wh_code", goods.getWh_code());            list.add(goodsMap);        }        OkHttpUtils                .postString()                .headers(CommonUtils.getHttpHeadParams(getApplication()))                .url(getUrl(Api.preDeal))                .content(JsonUtils.getInstance().obj2Json(params))                .build()                .execute(new DefaultStringCallBack() {                    @Override                    public void onError(Call call, Exception e) {                        pb.setVisibility(View.GONE);                        Toast.makeText(getApplication(), "请求出错,错误信息:" + e.getMessage(), Toast.LENGTH_SHORT).show();                    }                    @Override                    public void onResponse(String response) {                        pb.setVisibility(View.GONE);                        //跳转到订单确认页面                        try {                            int code = new JSONObject(response).getInt("code");                            if (code == 200) {                                Intent intent = new Intent(getActivity(), VerifyOrder.class);                                intent.putExtra("preStr", response);                                startActivityForResult(intent, 110);                            } else {                                ResponseUtils.checkToken(getApplication(), code);                            }                        } catch (JSONException e) {                            e.printStackTrace();                        }                    }                });    }    //刷新数据    private void reflash() {        for (int i = 0; i < adapterList.size(); i++) {            adapterList.get(i).notifyDataSetChanged();        }    }    //编辑物品的数量    private void editNumb(Goods g, int numb) {        pb.setVisibility(View.VISIBLE);        isEdited = true;        HashMap<String, String> params = new HashMap<>();        params.put("cart_id", g.getCart_id() + "");        params.put("buy_num", numb + "");        params.put("sku_id", g.getSku_id() + "");        params.put("comp_id", g.getComp_id() + "");        params.put("wh_code", g.getWh_code() + "");        OkHttpUtils.get().headers(CommonUtils.getHttpHeadParams(getApplication())).url(getUrl(Api.shoppingCarEdit)).params(params).build().execute(new DefaultStringCallBack() {            @Override            public void onError(Call call, Exception e) {                pb.setVisibility(View.GONE);                Toast.makeText(getApplication(), "编辑数量出错,错误信息:" + e.getMessage(), Toast.LENGTH_SHORT).show();            }            @Override            public void onResponse(String response) {                pb.setVisibility(View.GONE);                Toast.makeText(getApplication(), "编辑数量成功!", Toast.LENGTH_SHORT).show();            }        });    }    @Override    public void onResume() {        EventBus.getDefault().register(this);        super.onResume();        loadData();    }    @Override    public void onPause() {        super.onPause();        EventBus.getDefault().unregister(this);    }}


1 0