ExpandableListview购物车

一、ViewPage:

1.xml

    <android.support.v4.view.ViewPager
            android:id="@+id/pager"
            android:layout_weight="1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
     
        </android.support.v4.view.ViewPager>
     
        <RadioGroup
            android:id="@+id/radiogroup"
            android:layout_width="match_parent"
            android:layout_height="48dp"
            android:orientation="horizontal">
     
            <RadioButton
                android:id="@+id/homepage"
                android:layout_width="wrap_content"
                android:layout_weight="1"
                android:layout_height="match_parent"
                android:button="@null"
                android:gravity="center"
                android:background="@drawable/buttonclick"
                android:text="首页"/>
     
            <RadioButton
                android:id="@+id/shopcart"
                android:layout_width="wrap_content"
                android:layout_weight="1"
                android:layout_height="match_parent"
                android:button="@null"
                android:gravity="center"
                android:background="@drawable/buttonclick"
                android:text="购物车"/>
     
            <RadioButton
                android:id="@+id/mine"
                android:layout_width="wrap_content"
                android:layout_weight="1"
                android:layout_height="match_parent"
                android:button="@null"
                android:gravity="center"
                android:background="@drawable/buttonclick"
                android:text="我的"/>
     
        </RadioGroup>

2.activity

    public class MainActivity extends AppCompatActivity {
     
        @BindView(R.id.pager)
        ViewPager pager;
        @BindView(R.id.radiogroup)
        RadioGroup group;
        @BindView(R.id.homepage)
        RadioButton homepage;
        @BindView(R.id.shopcart)
        RadioButton shopcart;
        @BindView(R.id.mine)
        RadioButton mine;
        private HomePageFragment homePageFragment;
        private ShopcartFragment shopcartFragment;
        private MineFragment mineFragment;
        private ArrayList<Fragment> list;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            ButterKnife.bind(this);
     
            homePageFragment = new HomePageFragment();
            shopcartFragment = new ShopcartFragment();
            mineFragment = new MineFragment();
     
            list = new ArrayList<>();
            list.add(homePageFragment);
            list.add(shopcartFragment);
            list.add(mineFragment);
     
            pager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
                @Override
                public Fragment getItem(int i) {
                    return list.get(i);
                }
     
                @Override
                public int getCount() {
                    return list.size();
                }
            });
     
            group.check(group.getChildAt(0).getId());
            pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
                @Override
                public void onPageScrolled(int i, float v, int i1) {
     
                }
     
                @Override
                public void onPageSelected(int i) {
                    group.check(group.getChildAt(i).getId());
                }
     
                @Override
                public void onPageScrollStateChanged(int i) {
     
                }
            });
     
            pager.setCurrentItem(0);
            group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(RadioGroup group, int checkedId) {
                    switch (checkedId){
                        case R.id.homepage:
                            pager.setCurrentItem(0);
                            break;
                        case R.id.shopcart:
                            pager.setCurrentItem(1);
                            break;
                        case R.id.mine:
                            pager.setCurrentItem(2);
                            break;
                    }
                }
            });
     
        }
    }

二、首页:

1.xml

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".view.activity.MainActivity">
     
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <EditText
                android:id="@+id/editquery"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="16dp"
                android:layout_weight="1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
            <TextView
                android:id="@+id/query"
                android:layout_marginRight="16dp"
                android:textSize="16sp"
                android:text="搜索"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
        </LinearLayout>
     
        <com.jcodecraeer.xrecyclerview.XRecyclerView
            android:id="@+id/xrecycler"
            android:layout_marginTop="10dp"
            android:layout_marginLeft="16dp"
            android:layout_marginRight="16dp"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
     
        </com.jcodecraeer.xrecyclerview.XRecyclerView>
     
    </LinearLayout>

2.activity

    public class Frag_home extends Fragment implements Frag_homeInterface {
     
        private int page = 1;
        private int count = 20;
     
        @BindView(R.id.editquery)
        EditText editText;
        @BindView(R.id.query)
        TextView query;
        @BindView(R.id.xrecycler)
        XRecyclerView recycler;
        private MyAdapter_query myAdapter_query;
        private Frag_homePresenter frag_homePresenter;
     
        @Nullable
        @Override
        public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
            View view = inflater.inflate(R.layout.frag_home, container, false);
            ButterKnife.bind(this,view);
     
            frag_homePresenter = new Frag_homePresenter();
            frag_homePresenter.setView(this);
            //查询点击事件
            query.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    String s = editText.getText().toString();
                    if(s==null || s.equals("")){
                        Toast.makeText(getActivity(), "搜索商品不能为空", Toast.LENGTH_SHORT).show();
                    }else{
                        frag_homePresenter.queryData(s,page,count);
     
                    }
                }
            });
     
     
            return view;
        }
     
        //实现接口方法
        @Override
        public void onSuccess(Object o, int isWhat) {
            if(isWhat==0){
                QueryDataBean bean = (QueryDataBean) o;
                Toast.makeText(getActivity(), ""+bean.getMessage(), Toast.LENGTH_SHORT).show();
                List<QueryDataBean.ResultBean> list = bean.getResult();
                recycler.setLayoutManager(new GridLayoutManager(getActivity(),2));
                myAdapter_query = new MyAdapter_query(getActivity());
                myAdapter_query.setData(list);
                recycler.setAdapter(myAdapter_query);
     
                recycler.setLoadingListener(new XRecyclerView.LoadingListener() {
                    @Override
                    public void onRefresh() {
                        String s = editText.getText().toString();
                        frag_homePresenter.queryData(s,page,count);
                        recycler.refreshComplete();
                    }
     
                    @Override
                    public void onLoadMore() {
     
                    }
                });
     
            }
     
        }
     
        @Override
        public void onFail(String err) {
     
        }
     
        //懒加载
        @Override
        public void setUserVisibleHint(boolean isVisibleToUser) {
            frag_homePresenter = new Frag_homePresenter();
            frag_homePresenter.setView(this);
            super.setUserVisibleHint(isVisibleToUser);
        }
     
        @Override
        public void onDestroy() {
            super.onDestroy();
            frag_homePresenter.detachView();
        }
    }

3.adapter

    public class MyAdapter_query extends RecyclerView.Adapter<MyAdapter_query.ViewHolder> {
        private Context context;
        private List<QueryDataBean.ResultBean> list;
     
        public MyAdapter_query(Context context) {
            this.context = context;
        }
     
        @NonNull
        @Override
        public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
            View view = View.inflate(context, R.layout.listitem_query, null);
            ViewHolder viewHolder = new ViewHolder(view);
     
            return viewHolder;
        }
     
        @Override
        public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
            viewHolder.image.setImageURI(Uri.parse(list.get(i).getMasterPic()));
            viewHolder.name.setText(list.get(i).getCommodityName());
            viewHolder.yishou.setText("已售"+list.get(i).getSaleNum());
            viewHolder.price.setText("¥:"+list.get(i).getPrice()+".00");
        }
     
        @Override
        public int getItemCount() {
            return list.size();
        }
     
        public void setData(List<QueryDataBean.ResultBean> list) {
            this.list = list;
        }
     
        public class ViewHolder extends RecyclerView.ViewHolder {
     
            private final SimpleDraweeView image;
            private final TextView name;
            private final TextView yishou;
            private final TextView price;
     
            public ViewHolder(@NonNull View itemView) {
                super(itemView);
                image = itemView.findViewById(R.id.query_image);
                name = itemView.findViewById(R.id.query_name);
                yishou = itemView.findViewById(R.id.query_yishou);
                price = itemView.findViewById(R.id.query_price);
            }
        }
    }

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:orientation="vertical"
        android:layout_height="match_parent">
     
        <android.support.v7.widget.CardView
            android:layout_margin="12dp"
            app:cardCornerRadius="10dp"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <LinearLayout
                android:orientation="vertical"
                android:layout_width="match_parent"
                android:layout_height="match_parent">
                <com.facebook.drawee.view.SimpleDraweeView
                    android:id="@+id/query_image"
                    android:layout_marginTop="16dp"
                    android:layout_marginLeft="16dp"
                    android:layout_marginRight="16dp"
                    android:layout_width="match_parent"
                    android:layout_height="150dp" />
                <TextView
                    android:layout_marginTop="10dp"
                    android:id="@+id/query_name"
                    android:textSize="14sp"
                    android:text="name"
                    android:layout_marginLeft="16dp"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" />
                <RelativeLayout
                    android:layout_marginTop="10dp"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content">
                    <TextView
                        android:textColor="#D66C6C"
                        android:id="@+id/query_price"
                        android:text="price"
                        android:layout_marginLeft="16dp"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content" />
                    <TextView
                        android:id="@+id/query_yishou"
                        android:layout_alignParentRight="true"
                        android:text="已售0件"
                        android:layout_marginRight="16dp"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content" />
                </RelativeLayout>
     
            </LinearLayout>
        </android.support.v7.widget.CardView>
     
    </LinearLayout>

4.presenter

    public class Frag_homePresenter extends BasePresenter<Frag_homeInterface> {
     
        private final HttpUtils httpUtils;
     
        public Frag_homePresenter(){
            httpUtils = HttpUtils.getInstance();
        }
     
        public void queryData(String s, int page, int count) {
            httpUtils.response.getQueryData(s,""+page,""+count)
                    .subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe(new Consumer<QueryDataBean>() {
                        @Override
                        public void accept(QueryDataBean queryDataBean) throws Exception {
                            getView().onSuccess(queryDataBean,0);
                        }
                    });
     
        }
    }

5.utils

    public final RetrofitResponse response;
     
        //构造方法私有化
        private HttpUtils(){
     
            OkHttpClient okHttpClient = new OkHttpClient.Builder()
                    .addInterceptor(new Interceptor() {
                        @Override
                        public Response intercept(Chain chain) throws IOException {
                            Request request = chain.request();
                            Response response = chain.proceed(request);
                            Log.e("httputils",response.toString());
     
                            return response;
                        }
                    })
                    .build();
     
            Retrofit retrofit = new Retrofit.Builder()
                    .baseUrl("http://172.17.8.100/")
                    .addConverterFactory(GsonConverterFactory.create())
                    .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                    .client(okHttpClient)
                    .build();
            response = retrofit.create(RetrofitResponse.class);
     
     
     
        }
     
        //单例模式
        public static HttpUtils getInstance(){
            return HttpUtilsGetInstance.httpUtils;
        }
     
        private static class HttpUtilsGetInstance{
            private static HttpUtils httpUtils = new HttpUtils();
        }

6.interface

    public interface RetrofitResponse {
        @GET("small/commodity/v1/findCommodityByKeyword")
        Observable<QueryDataBean> getQueryData(@Query("keyword") String keyword, @Query("page") String page, @Query("count") String count);
        @GET("ks/product/getCarts?uid=51")
        Observable<ShopDataBean> getShopData();
     
    }

    public interface Frag_homeInterface<T> {
        void onSuccess(T t,int isWhat);
        void onFail(String err);
    }

7.application

    public class App extends Application {
        @Override
        public void onCreate() {
            super.onCreate();
     
            DiskCacheConfig config = DiskCacheConfig.newBuilder(this)
                    .setBaseDirectoryName("images")
                    .setBaseDirectoryPath(Environment.getExternalStorageDirectory())
                    .build();
     
     
            Fresco.initialize(this);
     
        }
    }

三、购物车

1.xml

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".view.activity.MainActivity">
     
        <ExpandableListView
            android:id="@+id/exlistview"
            android:layout_weight="1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
     
        </ExpandableListView>
     
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="48dp">
            <CheckBox
                android:id="@+id/checkall"
                android:layout_centerVertical="true"
                android:text="全选"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
            <TextView
                android:id="@+id/allprice"
                android:textColor="#E05858"
                android:textSize="12sp"
                android:layout_centerInParent="true"
                android:text="总价:¥0.00"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
            <TextView
                android:id="@+id/jiesuan"
                android:gravity="center"
                android:layout_alignParentRight="true"
                android:background="#E66565"
                android:textColor="#fff"
                android:text="去结算"
                android:layout_width="100dp"
                android:layout_height="match_parent" />
        </RelativeLayout>
     
     
    </LinearLayout>

2.activity

    public class Frag_shopcart extends Fragment implements Frag_shopcartInterface {
     
        private Frag_shopcartPresenter presenter;
        @BindView(R.id.exlistview)
        ExpandableListView listview;
        @BindView(R.id.checkall)
        CheckBox checkAll;
        @BindView(R.id.allprice)
        TextView allPrice;
        @BindView(R.id.jiesuan)
        TextView jiesuan;
     
        @Nullable
        @Override
        public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
            View view = inflater.inflate(R.layout.frag_shopcart, container, false);
            ButterKnife.bind(this,view);
     
            presenter = new Frag_shopcartPresenter();
            presenter.setView(this);
     
            presenter.getShopData();
     
     
     
            return view;
        }
     
        //实现接口方法
        @Override
        public void onSuccess(Object o, int isWhat) {
            if(isWhat==0){
                ShopDataBean bean = (ShopDataBean) o;
                List<ShopDataBean.DataBean> list = bean.getData();
                list.remove(0);
                MyAdapter_shopcart myAdapter_shopcart = new MyAdapter_shopcart(getActivity());
                myAdapter_shopcart.setData(list);
                myAdapter_shopcart.setView(checkAll,allPrice);
                listview.setAdapter(myAdapter_shopcart);
     
            }
        }
     
        @Override
        public void onFail(String err) {
     
        }
     
        //懒加载
        @Override
        public void setUserVisibleHint(boolean isVisibleToUser) {
            presenter = new Frag_shopcartPresenter();
            presenter.setView(this);
     
            presenter.getShopData();
            super.setUserVisibleHint(isVisibleToUser);
     
        }
     
        @Override
        public void onDestroy() {
            super.onDestroy();
            presenter.detachView();
        }
    }

3.adapter

    public class MyAdapter_shopcart extends BaseExpandableListAdapter {
        private Context context;
        private List<ShopDataBean.DataBean> list;
        private CheckBox checkAll;
        private TextView allPrice;
        private int goodsSum = 0;
     
        public MyAdapter_shopcart(Context context) {
            this.context = context;
        }
     
        public void setData(List<ShopDataBean.DataBean> list){
            this.list = list;
        }
     
        @Override
        public int getGroupCount() {
            return list.size();
        }
     
        @Override
        public int getChildrenCount(int groupPosition) {
            return list.get(groupPosition).getList().size();
        }
     
        @Override
        public Object getGroup(int groupPosition) {
            return null;
        }
     
        @Override
        public Object getChild(int groupPosition, int childPosition) {
            return null;
        }
     
        @Override
        public long getGroupId(int groupPosition) {
            return 0;
        }
     
        @Override
        public long getChildId(int groupPosition, int childPosition) {
            return 0;
        }
     
        @Override
        public boolean hasStableIds() {
            return false;
        }
     
     
     
     
     
        @Override
        public View getGroupView(final int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
            convertView = View.inflate(context, R.layout.listitem_group,null);
            CheckBox check = convertView.findViewById(R.id.checkGroup);
            check.setChecked(list.get(groupPosition).isCheckGroup());
            check.setText(list.get(groupPosition).getSellerName());
     
            //商家点击事件
            check.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    CheckBox checkBox = (CheckBox) v;
                    list.get(groupPosition).setCheckGroup(checkBox.isChecked());
     
                    //选中当前商家所有商品
                    checkAllChild(groupPosition,checkBox.isChecked());
     
                    //是否全选
                    boolean checkedAll = isCheckAll();
                    checkAll.setChecked(checkedAll);
     
                    notifyDataSetChanged();
                }
            });
     
     
            return convertView;
        }
     
        private void checkAllChild(int groupPosition, boolean checked) {
            for (int i = 0; i < list.get(groupPosition).getList().size(); i++) {
                list.get(groupPosition).getList().get(i).setCheckChild(checked);
            }
        }
     
        @Override
        public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
            convertView = View.inflate(context,R.layout.listitem_child,null);
            CheckBox check = convertView.findViewById(R.id.childCheck);
            SimpleDraweeView image = convertView.findViewById(R.id.childImage);
            TextView name = convertView.findViewById(R.id.childName);
            TextView price = convertView.findViewById(R.id.childPrice);
            TextView jian = convertView.findViewById(R.id.jian);
            final TextView sum = convertView.findViewById(R.id.sum);
            TextView jia = convertView.findViewById(R.id.jia);
     
            check.setChecked(list.get(groupPosition).getList().get(childPosition).isCheckChild());
            image.setImageURI(Uri.parse(list.get(groupPosition).getList().get(childPosition).getImages()));
            name.setText(list.get(groupPosition).getList().get(childPosition).getTitle());
            price.setText("¥:"+list.get(groupPosition).getList().get(childPosition).getPrice()+".00");
            sum.setText(""+list.get(groupPosition).getList().get(childPosition).getNum());
     
            //商品点击事件
            check.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    CheckBox checkBox = (CheckBox) v;
                    list.get(groupPosition).getList().get(childPosition).setCheckChild(checkBox.isChecked());
     
                    int goodsPrice = list.get(groupPosition).getList().get(childPosition).getPrice();
                    int goodsCount = list.get(groupPosition).getList().get(childPosition).getNum();
     
                    //是否选中商家
                    boolean checkGroup = isCheckGroup(groupPosition);
                    list.get(groupPosition).setCheckGroup(checkGroup);
                    //是否全选
                    boolean checkedAll = isCheckAll();
                    checkAll.setChecked(checkedAll);
     
                    //计算总价
                    if(checkBox.isChecked()){
                        goodsSum+=goodsPrice*goodsCount;
                        allPrice.setText("总价:¥"+goodsSum);
                        notifyDataSetChanged();
                    }else{
                        goodsSum-=goodsPrice*goodsCount;
                        allPrice.setText("总价:¥"+goodsSum);
                        notifyDataSetChanged();
                    }
     
     
                    notifyDataSetChanged();
                }
            });
            //减少
            jian.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Log.e("adapter","减少");
                    int goodsNum = list.get(groupPosition).getList().get(childPosition).getNum();
                    if(goodsNum>1){
                        goodsNum--;
                        sum.setText(""+goodsNum);
                        list.get(groupPosition).getList().get(childPosition).setNum(goodsNum);
     
                        boolean checkChild = list.get(groupPosition).getList().get(childPosition).isCheckChild();
                        if(checkChild){
                            int price = list.get(groupPosition).getList().get(childPosition).getPrice();
     
                            goodsSum-=price;
                            allPrice.setText("总价:¥"+goodsSum);
     
                        }
     
                        notifyDataSetChanged();
                    }
     
                }
            });
            //增加
            jia.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Log.e("adapter","增加");
                    int goodsNum = list.get(groupPosition).getList().get(childPosition).getNum();
                    goodsNum++;
                    list.get(groupPosition).getList().get(childPosition).setNum(goodsNum);
                    sum.setText(""+goodsNum);
                    /*goodsSum=0;
                        for (int i = 0; i < list.size(); i++) {
                            for (int j = 0; j < list.get(i).getList().size(); j++) {
                                boolean checkChild = list.get(i).getList().get(j).isCheckChild();
                                if(checkChild){
                                    int price = list.get(i).getList().get(j).getPrice();
                                    int num = list.get(i).getList().get(j).getNum();
                                    goodsSum+=price*goodsNum;
                                    allPrice.setText("总价:¥"+goodsSum);
                                    notifyDataSetChanged();
                                }
                            }
                        }*/
     
                    boolean checkChild = list.get(groupPosition).getList().get(childPosition).isCheckChild();
                    if (checkChild){
                        int price = list.get(groupPosition).getList().get(childPosition).getPrice();
     
                        goodsSum+=price;
                        allPrice.setText("总价:¥"+goodsSum);
     
                    }
     
     
     
     
                    notifyDataSetChanged();
                }
            });
     
     
            return convertView;
        }
     
        private boolean isCheckAll() {
            for (int i = 0; i < list.size(); i++) {
                if (!list.get(i).isCheckGroup()) {
                    return false;
                }
            }
            return true;
        }
     
        //是否选中商家
        private boolean isCheckGroup(int groupPosition) {
            for (int i = 0; i < list.get(groupPosition).getList().size(); i++) {
                if (!list.get(groupPosition).getList().get(i).isCheckChild()){
                    return false;
                }
            }
            return true;
        }
     
     
        @Override
        public boolean isChildSelectable(int groupPosition, int childPosition) {
            return false;
        }
     
        public void setView(CheckBox checkAll, final TextView allPrice) {
            this.checkAll = checkAll;
            this.allPrice = allPrice;
     
            //全选
            checkAll.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    CheckBox checkBox = (CheckBox) v;
                    goodsSum=0;
                    if(checkBox.isChecked()){
                        for (int i = 0; i < list.size(); i++) {
                            list.get(i).setCheckGroup(checkBox.isChecked());
                            for (int j = 0; j < list.get(i).getList().size(); j++) {
                                list.get(i).getList().get(j).setCheckChild(checkBox.isChecked());
                                int price = list.get(i).getList().get(j).getPrice();
                                int num = list.get(i).getList().get(j).getNum();
                                goodsSum+=price*num;
     
                            }
                        }
                        allPrice.setText("总价:¥"+goodsSum);
                    }else{
                        for (int i = 0; i < list.size(); i++) {
                            list.get(i).setCheckGroup(checkBox.isChecked());
                            for (int j = 0; j < list.get(i).getList().size(); j++) {
                                list.get(i).getList().get(j).setCheckChild(checkBox.isChecked());
                                int price = list.get(i).getList().get(j).getPrice();
                                int num = list.get(i).getList().get(j).getNum();
                                goodsSum+=price*num;
     
                            }
                        }
                        goodsSum=0;
                        allPrice.setText("总价:¥"+goodsSum);
                    }
     
     
     
     
                    notifyDataSetChanged();
                }
            });
     
     
        }
    }

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:orientation="vertical"
        android:layout_height="match_parent">
     
        <LinearLayout
            android:gravity="center_vertical"
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="48dp">
            <CheckBox
                android:id="@+id/checkGroup"
                android:focusable="false"
                android:clickable="true"
                android:text="商家1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
        </LinearLayout>
     
    </LinearLayout>

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:orientation="vertical"
        android:layout_height="match_parent">
     
        <LinearLayout
            android:layout_margin="16dp"
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <CheckBox
                android:focusable="false"
                android:layout_gravity="center_vertical"
                android:id="@+id/childCheck"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
            <com.facebook.drawee.view.SimpleDraweeView
                android:id="@+id/childImage"
                android:layout_width="80dp"
                android:layout_height="80dp" />
            <LinearLayout
                android:orientation="vertical"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
                <TextView
                    android:layout_marginTop="16dp"
                    android:id="@+id/childName"
                    android:text="name"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" />
                <LinearLayout
                    android:layout_marginTop="16dp"
                    android:gravity="center_vertical"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content">
                    <TextView
                        android:id="@+id/childPrice"
                        android:textColor="#E06363"
                        android:textSize="12sp"
                        android:text="price"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content" />
                    <TextView
                        android:id="@+id/jian"
                        android:layout_marginLeft="150dp"
                        android:textSize="28sp"
                        android:text="-"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content" />
                    <TextView
                        android:id="@+id/sum"
                        android:layout_marginLeft="10dp"
                        android:textSize="16sp"
                        android:text="sum"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content" />
                    <TextView
                        android:id="@+id/jia"
                        android:layout_marginLeft="10dp"
                        android:textSize="28sp"
                        android:text="+"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content" />
                </LinearLayout>
     
            </LinearLayout>
     
     
        </LinearLayout>
     
    </LinearLayout>

4.presenter

    public class Frag_shopcartPresenter extends BasePresenter<Frag_shopcartInterface> {
     
        private final HttpUtils httpUtils;
     
        public Frag_shopcartPresenter(){
            httpUtils = HttpUtils.getInstance();
        }
     
        public void getShopData() {
            httpUtils.response.getShopData()
                    .subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe(new Consumer<ShopDataBean>() {
                        @Override
                        public void accept(ShopDataBean shopDataBean) throws Exception {
                            getView().onSuccess(shopDataBean,0);
                        }
                    });
     
     
        }
    }

5.

    public interface Frag_shopcartInterface<T> {
        void onSuccess(T t, int isWhat);
        void onFail(String err);
    }
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值