总结之购物车


网络框架阶段

MyBaseUrl

public class MyBaseUrl {
    public static String BASE_URL = "http://172.17.8.100/small/";

    public static String LOGIN_URL = "user/v1/login";

    public static String STAIR_URL = "commodity/v1/findFirstCategory?page=3&count=5";

    public static String SECOND_URL = "commodity/v1/findCommodityByCategory";

    public static String QUERY_URL = "order/verify/v1/findShoppingCart";

    public static String ADD_URL = "order/verify/v1/syncShoppingCart";
}
MyRxhttp
public interface MyRxhttp {

    @GET
    Observable<ResponseBody> getInfo(@Url String url, @QueryMap Map<String,Object> map);

    @POST
    Observable<ResponseBody> postInfo(@Url String url, @QueryMap Map<String,Object> map);

    @PUT
    Observable<ResponseBody> putshopping(@HeaderMap Map<String,Object> map,@Url String url,@Query("data") String data);

    @GET
    Observable<ResponseBody> shoppingInfo(@HeaderMap Map<String,Object>  map,@Url String url);
    //同步购物车
    @PUT
    Observable<ResponseBody> getShopping(@HeaderMap Map<String,Object> map,@Url String url);

}
MyNetUtils


public class MyNetUtils {

    private static MyRxhttp myRxhttp;
    private static JSONArray jsonArray;

    private MyNetUtils(){
        HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();
        loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);

        OkHttpClient okHttpClient = new OkHttpClient.Builder()
                .addInterceptor(loggingInterceptor)
                .build();

        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(MyBaseUrl.BASE_URL)
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                .addConverterFactory(GsonConverterFactory.create())
                .client(okHttpClient)
                .build();

        myRxhttp = retrofit.create(MyRxhttp.class);

    }
    private static class NetHolder{
        private static final MyNetUtils MY_NET_UTILS = new MyNetUtils();
    }
    public static MyNetUtils getInstance(){
        return NetHolder.MY_NET_UTILS;
    }
    private static Observable<ResponseBody> mShopping;
    private static Observable<ResponseBody> joinShopping;
    private static Observable<ResponseBody> listShopping;
    private static Map<String, Object> hearMap;

    private static  ArrayList<JSONObject> list = new ArrayList<>();
    //添加购物车
    public static void getAddShopping(String url, int id, final CallBack callBack){
        jsonArray = new JSONArray();
        JSONObject jsonObject = new JSONObject();
        try {
            jsonObject.put("commodityId",id);
            jsonObject.put("count",2);

            jsonArray.put(jsonObject);

        } catch (JSONException e) {
            e.printStackTrace();
        }
        myRxhttp.putshopping(hearMap,url,jsonArray.toString())
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Subscriber<ResponseBody>() {
                    @Override
                    public void onCompleted() {

                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onNext(ResponseBody responseBody) {
                        try {
                            String string = responseBody.string();
                            callBack.success(string);
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                });
    }

    //购物车
    public void getshopping(String url, final CallBack callBack){
        myRxhttp.shoppingInfo(hearMap,url)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Subscriber<ResponseBody>() {
                    @Override
                    public void onCompleted() {

                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onNext(ResponseBody responseBody) {
                        try {
                            String string = responseBody.string();
                            Log.e("GWC", "gwc: "+string );
                            callBack.success(string);
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                });
    }

    //三层嵌套
    public void lastRequest(final CallBack callBack) {
        Map<String, Object> map = new HashMap<>();
        map.put("phone", "13716934444");
        map.put("pwd", "123456");
        Observable<ResponseBody> loginObser = myRxhttp.postInfo(MyBaseUrl.LOGIN_URL, map);
        loginObser.subscribeOn(Schedulers.io())
                .observeOn(Schedulers.io())
                .doOnNext(new Action1<ResponseBody>() {
                    @Override
                    public void call(ResponseBody responseBody) {
                        try {
                            String string = responseBody.string();
                            Gson gson = new Gson();
                            LoginBean loginBean = gson.fromJson(string, LoginBean.class);
                            hearMap = new HashMap<>();
                            hearMap.put("userId", loginBean.getResult().getUserId());
                            hearMap.put("sessionId", loginBean.getResult().getSessionId());
                            joinShopping = myRxhttp.shoppingInfo(hearMap, MyBaseUrl.STAIR_URL);
                        } catch (Exception e) {

                        }
                    }
                }).subscribeOn(Schedulers.io())
                .observeOn(Schedulers.io())
                .flatMap(new Func1<ResponseBody, Observable<ResponseBody>>() {
                    @Override
                    public Observable<ResponseBody> call(ResponseBody responseBody) {
                        return joinShopping;
                    }
                }).doOnNext(new Action1<ResponseBody>() {
            @Override//这个是加入购物车走的成功回调
            public void call(ResponseBody responseBody) {

                try {
                    Gson gosn = new Gson();
                    StairBean stairBean = gosn.fromJson(responseBody.string(), StairBean.class);
                    List<StairBean.ResultBean> result = stairBean.getResult();
                    HashMap<String, Object> map1 = new HashMap<>();
                    for (int i = 0; i < result.size() ; i++) {
                        map1.put("categoryId",result.get(i).getId()+"001");
                        map1.put("page","1");
                        map1.put("count","10");
                    }
                    mShopping = myRxhttp.getInfo(MyBaseUrl.SECOND_URL, map1);

                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }).flatMap(new Func1<ResponseBody, Observable<ResponseBody>>() {
            @Override
            public Observable<ResponseBody> call(ResponseBody responseBody) {
                return mShopping;
            }
        }).subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<ResponseBody>() {
            @Override
            public void call(ResponseBody responseBody) {
                try {
                    callBack.success(responseBody.string());
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        });

    }

    public interface CallBack{
        void success(String success);
        void error(String error);
    }

}

MVP框架阶段

IContact


public interface IContact {

  interface IModel{
      void getData(String url,MyCallBack callBack);
      void getAddShopping(String url,int id,MyCallBack callBack);
      void getShopping(String url,MyCallBack callBack);
  }

  interface IView{
      void getData(String json);
      void showAddShopping(String json);
      void shoShopping(String url);
  }

  interface IPresenter{
      void startRequest(String json);
      void requestAddShopping(String url,int id);
      void requestShopping(String json);
      void Dettach();
  }

  interface MyCallBack{
      void success(String success);
      void error(String error);
  }

}
Model
package com.example.zhaojingyu0628.mvp.model;

import com.example.zhaojingyu0628.IContact;
import com.example.zhaojingyu0628.utils.MyNetUtils;

public class Model implements IContact.IModel {
    @Override
    public void getData(String url, final IContact.MyCallBack callBack) {
        MyNetUtils.getInstance().lastRequest(new MyNetUtils.CallBack() {
            @Override
            public void success(String success) {
                callBack.success(success);
            }

            @Override
            public void error(String error) {

            }
        });
    }

    @Override
    public void getAddShopping(String url, int id, final IContact.MyCallBack callBack) {
        MyNetUtils.getAddShopping(url, id, new MyNetUtils.CallBack() {
            @Override
            public void success(String success) {
                callBack.success(success);
            }

            @Override
            public void error(String error) {

            }
        });
    }

    @Override
    public void getShopping(String url, final IContact.MyCallBack callBack) {
        MyNetUtils.getInstance().getshopping(url, new MyNetUtils.CallBack() {
            @Override
            public void success(String success) {
                callBack.success(success);
            }

            @Override
            public void error(String error) {

            }
        });
    }
}
Presenter



public class presenter  implements IContact.IPresenter {
    private IContact.IModel mIModel;
    private IContact.IView mIView;

    public presenter(IContact.IView mIView) {
        this.mIModel = new Model();
        this.mIView = mIView;
    }

    @Override
    public void startRequest(String json) {
        mIModel.getData(json, new IContact.MyCallBack() {
            @Override
            public void success(String success) {
                mIView.getData(success);
            }

            @Override
            public void error(String error) {

            }
        });
    }

    @Override
    public void requestAddShopping(String url, int id) {
        mIModel.getAddShopping(url,id, new IContact.MyCallBack() {
            @Override
            public void success(String success) {
                mIView.showAddShopping(success);
            }

            @Override
            public void error(String error) {

            }
        });
    }

    @Override
    public void requestShopping(String json) {
        mIModel.getShopping(json, new IContact.MyCallBack() {
            @Override
            public void success(String success) {
                mIView.shoShopping(success);
            }

            @Override
            public void error(String error) {

            }
        });
    }

    @Override
    public void Dettach() {
        if (mIModel!=null){
            mIModel = null;
        }
        if (mIView!=null){
            mIView = null;
        }
    }
}
展示首页阶段

MainActivity


public class MainActivity extends AppCompatActivity implements IContact.IView, View.OnClickListener {
    private RecyclerView recycle_view;
    private ArrayList<SecondBean.ResultBean> list = new ArrayList<>();
    private ShoAdapter shoAdapter;
    private Button tiao;
    private com.example.zhaojingyu0628.mvp.Presenter.presenter presenter;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        presenter = new presenter(this);

        initView();
        initData();
    }

    private void initData() {

        presenter.startRequest(MyBaseUrl.LOGIN_URL);
        GridLayoutManager manager = new GridLayoutManager(this, 2);
        recycle_view.setLayoutManager(manager);
        shoAdapter = new ShoAdapter(list, this);
        recycle_view.setAdapter(shoAdapter);
        shoAdapter.setOnItemClick(new ShoAdapter.setOnclicklister() {
            @Override
            public void setOnItemClick(View view, int position) {
                int commodityId = list.get(position).getCommodityId();
                presenter.requestAddShopping(MyBaseUrl.ADD_URL,commodityId);
            }
        });

    }

    @Override
    public void getData(String json) {
        Gson gson = new Gson();
        SecondBean secondBean = gson.fromJson(json, SecondBean.class);
        Log.e("secondBean", "getData: " + secondBean);
        list.addAll(secondBean.getResult());
        Log.e("list", "getData: " + list);
        shoAdapter.notifyDataSetChanged();
    }

    @Override
    public void showAddShopping(String json) {
        Gson gson = new Gson();
        AddShoppingBean addShoppingBean = gson.fromJson(json, AddShoppingBean.class);
        if (addShoppingBean.getStatus().equals("0000")){
            Toast.makeText(this, addShoppingBean.getMessage(), Toast.LENGTH_SHORT).show();
        }
    }

    @Override
    public void shoShopping(String url) {

    }

    private void initView() {
        recycle_view = (RecyclerView) findViewById(R.id.recycle_view);
        tiao = (Button) findViewById(R.id.tiao);
        tiao.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.tiao:
                Intent intent = new Intent(this, Shopping.class);
                startActivity(intent);
                break;
        }
    }
}

购物车阶段

Shopping



public class Shopping extends AppCompatActivity implements IContact.IView, View.OnClickListener {
    @BindView(R.id.check_All)
    CheckBox checkAll;
    @BindView(R.id.All_Count)
    TextView AllCount;
    @BindView(R.id.All_Price)
    TextView AllPrice;
    @BindView(R.id.recycle_view)
    RecyclerView recycleView;
    private ArrayList<ShoppingBean_one.ResultBean> list = new ArrayList<>();
    private com.example.zhaojingyu0628.mvp.Presenter.presenter presenter;

    private ShoppingAdapter adapter;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_shopping);
        ButterKnife.bind(this);

        presenter = new presenter(this);
        initData();

    }

    private void initData() {
        LinearLayoutManager manager = new LinearLayoutManager(this);
        recycleView.setLayoutManager(manager);
        adapter = new ShoppingAdapter(list, this);
        recycleView.setAdapter(adapter);
        presenter.requestShopping(MyBaseUrl.QUERY_URL);


    }

    @Override
    public void getData(String json) {

    }

    @Override
    public void showAddShopping(String josn) {

    }

    @Override
    public void shoShopping(String json) {
        Log.e("url", "shoShopping: " + json);

        Gson gson = new Gson();
        ShoppingBean_one shoppingBean_one = gson.fromJson(json, ShoppingBean_one.class);

        Log.e("gson", "shoShopping: " + shoppingBean_one);
        list.addAll(shoppingBean_one.getResult());
        Log.e("list", "shoShopping: " + list);
        adapter.notifyDataSetChanged();
        adapter.setCheckClick(new ShoppingAdapter.CheckClick() {
            @Override
            public void groupClick(int groupPosition) {
                boolean childBoo = adapter.getChildBoo(list.get(groupPosition).getShoppingCartList());
                adapter.setCheckClick(groupPosition, !childBoo);
                adapter.notifyDataSetChanged();
                Toast.makeText(Shopping.this, "ss", Toast.LENGTH_SHORT).show();
                setAll_Price();
            }

            @Override
            public void childClick(int groupPosition, int childPosition) {
                boolean childCheck = list.get(groupPosition).getShoppingCartList().get(childPosition).isChildCheck();
                adapter.clickChildCheck(groupPosition, childPosition, !childCheck);
                adapter.notifyDataSetChanged();
                setAll_Price();

            }

            @Override
            public void addandRemove(int groupPosition, int childPosition, int number) {
                adapter.setChildCheckldNumber(groupPosition, childPosition, number);
                adapter.notifyDataSetChanged();
                setAll_Price();
            }
        });
    }


    private void setAll_Price() {
        int allPrice = adapter.CountAllPrice();
        AllPrice.setText(allPrice + "");
        AllCount.setText("数量:" + adapter.countAllShoppingNumber());
        checkAll.setChecked(adapter.getAllShoppingIsCheck());
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.check_All:
                boolean allIsCheck = adapter.getAllShoppingIsCheck();
                adapter.setAllShoppingIsCheck(!allIsCheck);
                adapter.notifyDataSetChanged();
                setAll_Price();
                break;
        }
    }

    @OnClick(R.id.check_All)
    public void onViewClicked() {
        boolean allIsCheck = adapter.getAllShoppingIsCheck();
        adapter.setAllShoppingIsCheck(!allIsCheck);
        adapter.notifyDataSetChanged();
        setAll_Price();
    }
}
ShoAdapter首页


public class ShoAdapter extends RecyclerView.Adapter<ShoAdapter.Holder> implements View.OnClickListener {
    private List<SecondBean.ResultBean> list;
    private Context context;

    public ShoAdapter(List<SecondBean.ResultBean> list, Context context) {
        this.list = list;
        this.context = context;
    }

    @NonNull
    @Override
    public ShoAdapter.Holder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = View.inflate(context, R.layout.item_sho,null);
        Holder holder = new Holder(view);
        view.setOnClickListener(this);
        return holder;
    }

    @Override
    public void onBindViewHolder(@NonNull ShoAdapter.Holder holder, int i) {
        Glide.with(context).load(list.get(i).getMasterPic()).into(holder.pick_sho);
        holder.name.setText(list.get(i).getCommodityName());
        holder.itemView.setTag(i);
    }

    @Override
    public int getItemCount() {
        return list.size();
    }
    public interface setOnclicklister{
        void setOnItemClick(View view,int position);
    }
    private setOnclicklister onclicklister;

    public void setOnItemClick(setOnclicklister onItemClick){
        this.onclicklister = onItemClick;
    }
    @Override
    public void onClick(View v) {
        if (onclicklister != null){
            onclicklister.setOnItemClick(v, (Integer) v.getTag());
        }
    }

    public class Holder extends RecyclerView.ViewHolder{
        private ImageView pick_sho;
        private TextView name;
        public Holder(@NonNull View itemView) {
            super(itemView);
            pick_sho = itemView.findViewById(R.id.pick_sho);
            name = itemView.findViewById(R.id.name_sho);
        }
    }
}
ShoppingAdapter购物车


public class ShoppingAdapter extends RecyclerView.Adapter<ShoppingAdapter.Holder> {
    private List<ShoppingBean_one.ResultBean> list;
    private Context context;

    public ShoppingAdapter(List<ShoppingBean_one.ResultBean> list, Context context) {
        this.list = list;
        this.context = context;
    }

    @NonNull
    @Override
    public Holder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = View.inflate(context, R.layout.item_shopping, null);
        Holder holder = new Holder(view);
        return holder;
    }

    @Override
    public void onBindViewHolder(@NonNull Holder holder, final int i) {

        holder.parent_name.setText(list.get(i).getCategoryName());
        holder.child_recycle.setLayoutManager(new LinearLayoutManager(context));
        ChildAdapter mChildAdapter = new ChildAdapter(list.get(i).getShoppingCartList(),context,i);
        holder.child_recycle.setAdapter(mChildAdapter);
        holder.parent_checkBox.setChecked(getChildBoo(list.get(i).getShoppingCartList()));
        holder.parent_checkBox.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (checkClick!=null){
                    checkClick.groupClick(i);
                }
            }
        });
    }

    @Override
    public int getItemCount() {
        return list.size();
    }



    public class Holder extends RecyclerView.ViewHolder {

        private CheckBox parent_checkBox;
        private TextView parent_name;
        private RecyclerView child_recycle;
        public Holder(@NonNull View itemView) {
            super(itemView);
            parent_checkBox = itemView.findViewById(R.id.parent_checkBox);
            parent_name = itemView.findViewById(R.id.parent_name);
            child_recycle = itemView.findViewById(R.id.child_recycle);


        }

    }

    private class ChildAdapter extends RecyclerView.Adapter<ChildAdapter.ChildHolder>{
        private List<ShoppingBean_one.ResultBean.ShoppingCartListBean> mChildList;
        private Context context;
        private int groupPosition;

        public ChildAdapter(List<ShoppingBean_one.ResultBean.ShoppingCartListBean> mChildList, Context context, int groupPosition) {
            this.mChildList = mChildList;
            this.context = context;
            this.groupPosition = groupPosition;
        }

        @NonNull
        @Override
        public ChildAdapter.ChildHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
            View view = View.inflate(viewGroup.getContext(),R.layout.child_item,null);
            ChildHolder childholder = new ChildHolder(view);
            return childholder;
        }

        @Override
        public void onBindViewHolder(@NonNull ChildAdapter.ChildHolder childHolder, final int i) {

            Glide.with(context).load(mChildList.get(i).getPic()).into(childHolder.child_pick);

            childHolder.child_name.setText(mChildList.get(i).getCommodityName());
            childHolder.child_price.setText(mChildList.get(i).getPrice()+"");
            childHolder.child_checkBox.setChecked(mChildList.get(i).isChildCheck());
            childHolder.child_checkBox.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    if (checkClick!=null){
                        checkClick.childClick(groupPosition,i);
                    }
                }
            });
            childHolder.AddAndRemove.setNumber(mChildList.get(i).getCount());
            childHolder.AddAndRemove.setInter(new AddAndRemoveView.MyInter() {
                @Override
                public void setNumber(int mIndex) {
                    if (checkClick!=null){
                        checkClick.addandRemove(groupPosition,i,mIndex);
                    }
                }
            });
        }

        @Override
        public int getItemCount() {
            return mChildList.size();
        }

        public class ChildHolder extends RecyclerView.ViewHolder{
            private CheckBox child_checkBox;
            private ImageView child_pick;
            private TextView child_name,child_price;
            private AddAndRemoveView AddAndRemove;
            public ChildHolder(@NonNull View itemView) {
                super(itemView);
                child_checkBox = itemView.findViewById(R.id.child_checkBox);
                child_pick = itemView.findViewById(R.id.child_pick);
                child_name = itemView.findViewById(R.id.child_name);
                child_price = itemView.findViewById(R.id.child_price);
                AddAndRemove = itemView.findViewById(R.id.AddAndRemove);

            }
        }
    }
    //判断商家是否选中
    public boolean getChildBoo(List<ShoppingBean_one.ResultBean.ShoppingCartListBean> shoppingCartList) {
        boolean isAllCheck = true;
        for (int i = 0; i < shoppingCartList.size(); i++) {
            if (!shoppingCartList.get(i).isChildCheck()){
                isAllCheck = false;
                break;
            }
        }
        return isAllCheck;
    }
    //当我点击商家的时候让所有子产品被选中
    public void setCheckClick(int groupPosition, boolean isCheck) {
        List<ShoppingBean_one.ResultBean.ShoppingCartListBean> shoppingCartList = list.get(groupPosition).getShoppingCartList();
        for (int i = 0; i < shoppingCartList.size(); i++) {
            shoppingCartList.get(i).setChildCheck(isCheck);
        }

    }
    //设置商品数量
    public void setChildCheckldNumber(int groupPosition, int childPosition, int number) {
        list.get(groupPosition).getShoppingCartList().get(childPosition).setCount(number);
    }

    //点击单个商品的逻辑
    public void clickChildCheck(int groupPosition, int childPosition,boolean isCheck) {
        list.get(groupPosition).getShoppingCartList().get(childPosition).setChildCheck(isCheck);
    }

    public interface CheckClick{
        //当我点击商家的时候
        void groupClick(int groupPosition);

        //点击商品的时候
        void childClick(int groupPosition,int childPosition);

//        //价格联动的时候
        void addandRemove(int groupPosition,int childPosition,int number);
    }

    private CheckClick checkClick;

    public void setCheckClick(CheckClick checkClick) {
        this.checkClick = checkClick;
    }

    //计算所有选中的 价格
    public int CountAllPrice() {
        int allPrice = 0;
        for (int i = 0; i < list.size(); i++) {
            List<ShoppingBean_one.ResultBean.ShoppingCartListBean> shoppingCartList = list.get(i).getShoppingCartList();
            for (int j = 0; j < shoppingCartList.size(); j++) {
                if (shoppingCartList.get(i).isChildCheck()){
                    allPrice += shoppingCartList.get(j).getPrice()*shoppingCartList.get(i).getCount();
                }
            }
        }
        return allPrice;
    }
    //计算所有选中的数量
    public int countAllShoppingNumber() {
        int allNumber = 0;
        for (int i = 0; i < list.size(); i++) {
            List<ShoppingBean_one.ResultBean.ShoppingCartListBean> shoppingCartList = list.get(i).getShoppingCartList();
            for (int j = 0; j < shoppingCartList.size(); j++) {
                if (shoppingCartList.get(j).isChildCheck()){
                    allNumber += shoppingCartList.get(j).getCount();
                }
            }
        }
        return allNumber;
    }


    public boolean getAllShoppingIsCheck() {
        boolean isAllCheck = true;
        for (int i = 0; i < list.size(); i++) {
            List<ShoppingBean_one.ResultBean.ShoppingCartListBean> shoppingCartList = list.get(i).getShoppingCartList();
            for (int j = 0; j < shoppingCartList.size(); j++) {
                ShoppingBean_one.ResultBean.ShoppingCartListBean bean = shoppingCartList.get(j);
                if (!bean.isChildCheck()){
                    isAllCheck = false;
                    break;
                }
            }
        }
        return isAllCheck;
    }

    public void setAllShoppingIsCheck(boolean ischeck) {
        for (int i = 0; i < list.size(); i++) {
            List<ShoppingBean_one.ResultBean.ShoppingCartListBean> shoppingCartList = list.get(i).getShoppingCartList();
            for (int j = 0; j < shoppingCartList.size(); j++) {
                shoppingCartList.get(j).setChildCheck(ischeck);
            }
        }
    }

}
AddAndRemoveView自定义加减器


public class AddAndRemoveView extends LinearLayout implements View.OnClickListener {
    private TextView Remove_btn;
    private TextView Num_text;
    private TextView Add_btn;
    private int mIndex = 0;

    public AddAndRemoveView(Context context, AttributeSet attrs) {
        super(context, attrs);
        View.inflate(context,R.layout.activity_add_and_remove_view,this);
        initView();
    }

    private void initView() {
        Remove_btn = (TextView) findViewById(R.id.Remove_btn);
        Remove_btn.setOnClickListener(this);
        Num_text = (TextView) findViewById(R.id.Num_text);
        Add_btn = (TextView) findViewById(R.id.Add_btn);
        Add_btn.setOnClickListener(this);
    }

    public void setNumber(int number){
        mIndex = number;
        Num_text.setText(number+"");
    }

    public int getNumber(){
        return Integer.parseInt(Num_text.getText().toString().trim());
    }
    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.Add_btn:
                mIndex++;
                Num_text.setText(mIndex+"");
                if (inter!=null){
                    inter.setNumber(mIndex);
                }
                break;
            case R.id.Remove_btn:
                if (mIndex>0){
                    mIndex--;
                    Num_text.setText(mIndex+"");
                    if (inter!=null){
                        inter.setNumber(mIndex);
                    }
                }else{
                    Toast.makeText(getContext(),"参数不能小于0",Toast.LENGTH_SHORT).show();
                }
                break;
        }
    }

    public interface MyInter{
        void setNumber(int mIndex);
    }
    private MyInter inter;

    public void setInter(MyInter inter) {
        this.inter = inter;
    }
}
MyGlide存储
package com.example.zhaojingyu0628;

import android.content.Context;
import android.os.Environment;
import android.support.annotation.NonNull;

import com.bumptech.glide.GlideBuilder;
import com.bumptech.glide.load.engine.cache.DiskLruCacheFactory;
import com.bumptech.glide.module.AppGlideModule;

public class MyGlide extends AppGlideModule {
    @Override
    public void applyOptions(@NonNull Context context, @NonNull GlideBuilder builder) {

        int size=1024*1024*100;
         path=context.getFilesDir().getPath();
         builder.setDiskCache(new DiskLruCacheFactory(aaaa()+"/aa",size));

    }

    public String aaaa() {
        return Environment.getExternalStorageState().equals(Environment.DIRECTORY_MOVIES) ?sd:path;
    }

    String path=null;
    String sd=Environment.getExternalStorageDirectory().getPath();
}

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <!--首页-->

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycle_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></android.support.v7.widget.RecyclerView>

    <Button
        android:id="@+id/tiao"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_marginTop="550dp"
        android:layout_marginLeft="350dp"
        android:background="@drawable/ssss"
        />

</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:orientation="vertical"
    android:layout_height="match_parent">
    <!--首页item-->
    <ImageView
        android:id="@+id/pick_sho"
        android:layout_width="100dp"
        android:layout_gravity="center"
        android:layout_height="100dp" />

    <TextView
        android:id="@+id/name_sho"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".Shopping">

    <!--购物车首页-->

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <CheckBox
            android:id="@+id/check_All"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <TextView
            android:id="@+id/All_Count"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="20dp"
            android:text="总数量"
            />
        <TextView
            android:id="@+id/All_Price"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="总价"
            />


    </LinearLayout>

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycle_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></android.support.v7.widget.RecyclerView>

</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

    <!--item父级-->

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    >

    <CheckBox
        android:id="@+id/parent_checkBox"
        android:layout_width="50dp"
        android:layout_height="50dp" />
    <TextView
        android:id="@+id/parent_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="name"
        />

</LinearLayout>

        <android.support.v7.widget.RecyclerView
            android:id="@+id/child_recycle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"></android.support.v7.widget.RecyclerView>




</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!--item子级-->

    <CheckBox
        android:id="@+id/child_checkBox"
        android:layout_width="50dp"
        android:layout_height="50dp" />

    <ImageView
        android:id="@+id/child_pick"
        android:layout_marginLeft="60dp"
        android:layout_width="100dp"
        android:layout_height="100dp" />
    <TextView
        android:id="@+id/child_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="200dp"
        android:text="name"
        />
    <TextView
        android:id="@+id/child_price"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="200dp"
        android:layout_marginTop="80dp"
        android:text="price"
        />

    <com.example.zhaojingyu0628.AddAndRemoveView
        android:id="@+id/AddAndRemove"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="300dp"
        android:layout_marginTop="70dp"
        ></com.example.zhaojingyu0628.AddAndRemoveView>


</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    tools:context=".AddAndRemoveView">

    <!--自定义加减器-->

    <TextView
        android:id="@+id/Remove_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="-"
        />

    <TextView
        android:id="@+id/Num_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:text="个数"
        />

    <TextView
        android:id="@+id/Add_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="+"
        />

</LinearLayout>
LoginBean
package com.example.zhaojingyu0628.bean;

public class LoginBean {


    private ResultBean result;
    private String message;
    private String status;

    public ResultBean getResult() {
        return result;
    }

    public void setResult(ResultBean result) {
        this.result = result;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public static class ResultBean {
        /**
         * headPic : http://172.17.8.100/images/small/default/user.jpg
         * nickName : 0X_BA9cu
         * phone : 13716934444
         * sessionId : 15617075723264721
         * sex : 1
         * userId : 4721
         */

        private String headPic;
        private String nickName;
        private String phone;
        private String sessionId;
        private int sex;
        private int userId;

        public String getHeadPic() {
            return headPic;
        }

        public void setHeadPic(String headPic) {
            this.headPic = headPic;
        }

        public String getNickName() {
            return nickName;
        }

        public void setNickName(String nickName) {
            this.nickName = nickName;
        }

        public String getPhone() {
            return phone;
        }

        public void setPhone(String phone) {
            this.phone = phone;
        }

        public String getSessionId() {
            return sessionId;
        }

        public void setSessionId(String sessionId) {
            this.sessionId = sessionId;
        }

        public int getSex() {
            return sex;
        }

        public void setSex(int sex) {
            this.sex = sex;
        }

        public int getUserId() {
            return userId;
        }

        public void setUserId(int userId) {
            this.userId = userId;
        }
    }
}
StairBean


public class StairBean {

    

    private String message;
    private String status;
    private List<ResultBean> result;

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public List<ResultBean> getResult() {
        return result;
    }

    public void setResult(List<ResultBean> result) {
        this.result = result;
    }

    public static class ResultBean {
        /**
         * id : 1001002
         * name : 女装
         */

        private String id;
        private String name;

        public String getId() {
            return id;
        }

        public void setId(String id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
    }
}
SecondBean
package com.example.zhaojingyu0628.bean;

import java.util.List;

public class SecondBean {

    

    private String message;
    private String status;
    private List<ResultBean> result;

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public List<ResultBean> getResult() {
        return result;
    }

    public void setResult(List<ResultBean> result) {
        this.result = result;
    }

    public static class ResultBean {
        

        private int commodityId;
        private String commodityName;
        private String masterPic;
        private int price;
        private int saleNum;

        public int getCommodityId() {
            return commodityId;
        }

        public void setCommodityId(int commodityId) {
            this.commodityId = commodityId;
        }

        public String getCommodityName() {
            return commodityName;
        }

        public void setCommodityName(String commodityName) {
            this.commodityName = commodityName;
        }

        public String getMasterPic() {
            return masterPic;
        }

        public void setMasterPic(String masterPic) {
            this.masterPic = masterPic;
        }

        public int getPrice() {
            return price;
        }

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

        public int getSaleNum() {
            return saleNum;
        }

        public void setSaleNum(int saleNum) {
            this.saleNum = saleNum;
        }
    }
}
AddShoppingBean


public class AddShoppingBean {
    private String status;
    private String message;

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}
ShoppingBean_one父子
package com.example.zhaojingyu0628.bean;

import java.util.List;

public class ShoppingBean_one {


    private String message;
    private String status;
    private List<ResultBean> result;

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public List<ResultBean> getResult() {
        return result;
    }

    public void setResult(List<ResultBean> result) {
        this.result = result;
    }

    public static class ResultBean {


        private String categoryName;
        private List<ShoppingCartListBean> shoppingCartList;

        public String getCategoryName() {
            return categoryName;
        }

        public void setCategoryName(String categoryName) {
            this.categoryName = categoryName;
        }

        public List<ShoppingCartListBean> getShoppingCartList() {
            return shoppingCartList;
        }

        public void setShoppingCartList(List<ShoppingCartListBean> shoppingCartList) {
            this.shoppingCartList = shoppingCartList;
        }

        public static class ShoppingCartListBean {


            private int commodityId;
            private String commodityName;
            private int count;
            private String pic;
            private int price;

            public int getCommodityId() {
                return commodityId;
            }

            public void setCommodityId(int commodityId) {
                this.commodityId = commodityId;
            }

            public String getCommodityName() {
                return commodityName;
            }

            public void setCommodityName(String commodityName) {
                this.commodityName = commodityName;
            }

            public int getCount() {
                return count;
            }

            public void setCount(int count) {
                this.count = count;
            }

            public String getPic() {
                return pic;
            }

            public void setPic(String pic) {
                this.pic = pic;
            }

            public int getPrice() {
                return price;
            }

            public void setPrice(int price) {
                this.price = price;
            }
            private boolean childCheck;

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

            public boolean isChildCheck() {
                return childCheck;
            }
        }
    }
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值