网络框架阶段
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;
}
}
}
}