RetrofitWork
package com.bwie.monthlyexaminationsimulation.utils; import retrofit2.Retrofit; import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory; import retrofit2.converter.gson.GsonConverterFactory; /** * author:Created by Administrator on 2018/7/26. */ public class RetrofitWork { public static RetrofitWork retrofitWork = null; private Retrofit retrofit; public static RetrofitWork getRetrofitWork(){ if(retrofitWork==null){ retrofitWork=new RetrofitWork(); } return retrofitWork; } public RetrofitWork(){ retrofit = new Retrofit.Builder() .baseUrl("https://www.zhaoapi.cn/") .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .build(); } public <T> T createRequest(Class<T> clz){ T t = retrofit.create(clz); return t; } }
RetrofitService
package com.bwie.monthlyexaminationsimulation.utils; import com.bwie.monthlyexaminationsimulation.bean.AddShopping_Bean; import com.bwie.monthlyexaminationsimulation.bean.DetailsBean; import com.bwie.monthlyexaminationsimulation.bean.HomeBean; import com.bwie.monthlyexaminationsimulation.bean.Shopping_cart; import io.reactivex.Observable; import retrofit2.http.POST; import retrofit2.http.Query; /** * author:Created by Administrator on 2018/7/26. */ public interface RetrofitService { @POST("home/getHome") Observable<HomeBean> getHome(); @POST("product/getProductDetail") Observable<DetailsBean> getDetails(@Query("pid") int pids ); @POST("product/addCart") Observable<AddShopping_Bean> getAdd(@Query("uid")int uid, @Query("pid") int pids); @POST("product/getCarts") Observable<Shopping_cart> getShopping(@Query("uid")int uid); }
Shopping_MODEL
package com.bwie.monthlyexaminationsimulation.model; import android.content.Context; import com.bwie.monthlyexaminationsimulation.bean.Shopping_cart; import com.bwie.monthlyexaminationsimulation.utils.RetrofitService; import com.bwie.monthlyexaminationsimulation.utils.RetrofitWork; import io.reactivex.Observable; import io.reactivex.Observer; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.Disposable; import io.reactivex.schedulers.Schedulers; /** * author:Created by Administrator on 2018/7/26. */ public class Shopping_Cart_Model { private Context context; private int uid=2248; private String url="http://www.zhaoapi.cn/product/getCarts"; public void getData(final IModel iModel){ RetrofitWork retrofitWork = RetrofitWork.getRetrofitWork(); RetrofitService retrofitService = retrofitWork.createRequest(RetrofitService.class); Observable<Shopping_cart> shopping_cartObservable = retrofitService.getShopping(uid); shopping_cartObservable.subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer<Shopping_cart>() { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(Shopping_cart shopping_cart) { iModel.getSuccess(shopping_cart); } @Override public void onError(Throwable e) { } @Override public void onComplete() { } }); } public interface IModel{ void getSuccess(Shopping_cart shopping_cart); } }
Shopping_Adapter
package com.bwie.monthlyexaminationsimulation.adapter; import android.view.View; import android.view.ViewGroup; import android.widget.BaseExpandableListAdapter; import android.widget.Button; import android.widget.CheckBox; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import com.bumptech.glide.Glide; import com.bwie.monthlyexaminationsimulation.R; import com.bwie.monthlyexaminationsimulation.bean.Shopping_cart; import com.bwie.monthlyexaminationsimulation.view.Main3Activity; import java.util.List; /** * author:Created by Administrator on 2018/7/28. */ public class Shopping_Cart_Adapter extends BaseExpandableListAdapter { private OnGetSum onGetSum; private List<Shopping_cart.DataBean> data; private Main3Activity main3Activity; public Shopping_Cart_Adapter(List<Shopping_cart.DataBean> data, Main3Activity main3Activity) { this.data = data; this.main3Activity = main3Activity; } @Override public int getGroupCount() { return data==null?0:data.size(); } @Override public int getChildrenCount(int groupPosition) { return data.get(groupPosition)==null?0:data.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) { ViewHolder1 viewHolder1; if(convertView==null){ convertView = View.inflate(main3Activity, R.layout.shopping_cart_group, null); viewHolder1=new ViewHolder1(); viewHolder1.group_checkBox=convertView.findViewById(R.id.group_checkbox); viewHolder1.group_text = convertView.findViewById(R.id.group_text); convertView.setTag(viewHolder1); }else{ viewHolder1 = (ViewHolder1) convertView.getTag(); } viewHolder1.group_text.setText(data.get(groupPosition).getSellerName()); viewHolder1.group_checkBox.setChecked(data.get(groupPosition).getGroupFlag()); viewHolder1.group_checkBox.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { CheckBox box = (CheckBox) v; boolean checked = box.isChecked(); Toast.makeText(main3Activity,checked+"有数据",Toast.LENGTH_SHORT).show(); data.get(groupPosition).setGroupFlag(checked); List<Shopping_cart.DataBean.ListBean> list = data.get(groupPosition).getList(); for (int i = 0; i < list.size(); i++) { //遍历集合给子条目的复选框选中状态设为父条目复选框的选中状态,父条目及其子条目的全选和反选, list.get(i).setChileFlag(checked); } createSum(); //调用刷新适配器的方法 setNotifyDataSetChanged(); } }); return convertView; } @Override public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { final ViewHolder2 viewHolder2; if(convertView==null){ convertView = View.inflate(main3Activity,R.layout.shopping_cart_chile,null); viewHolder2 =new ViewHolder2(); viewHolder2.chile_checkBox=convertView.findViewById(R.id.chile_checkbox); viewHolder2.chile_imageView = convertView.findViewById(R.id.shopping_cart_chile_imageview); viewHolder2.chile_title = convertView.findViewById(R.id.chile_title); viewHolder2.chile_price = convertView.findViewById(R.id.chile_price); viewHolder2.chile_text = convertView.findViewById(R.id.shopping_price_text); viewHolder2.button_jia = convertView.findViewById(R.id.shopping_jia); viewHolder2.button_jian = convertView.findViewById(R.id.shopping_jian); convertView.setTag(viewHolder2); }else{ viewHolder2 = (ViewHolder2) convertView.getTag(); } viewHolder2.chile_checkBox.setChecked(data.get(groupPosition).getList().get(childPosition).getChileFlag()); viewHolder2.chile_text.setText(data.get(groupPosition).getList().get(childPosition).getNum()+""); String[] split = data.get(groupPosition).getList().get(childPosition).getImages().split("\\|"); Glide.with(main3Activity).load(split[0]).into(viewHolder2.chile_imageView); viewHolder2.chile_title.setText(data.get(groupPosition).getList().get(childPosition).getTitle()); viewHolder2.chile_price.setText("¥"+data.get(groupPosition).getList().get(childPosition).getPrice()+""); viewHolder2.button_jia.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String s = viewHolder2.chile_text.getText().toString(); int counts = Integer.valueOf(s); counts++; data.get(groupPosition).getList().get(childPosition).setNum(counts); viewHolder2.chile_text.setText(data.get(groupPosition).getList().get(childPosition).getNum()+""); } }); viewHolder2.button_jian.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String s = viewHolder2.chile_text.getText().toString(); int counts = Integer.valueOf(s); counts--; data.get(groupPosition).getList().get(childPosition).setNum(counts); viewHolder2.chile_text.setText(data.get(groupPosition).getList().get(childPosition).getNum()+""); } }); viewHolder2.chile_checkBox.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { boolean checked1 = viewHolder2.chile_checkBox.isChecked(); boolean flag = true; List<Shopping_cart.DataBean.ListBean> list = data.get(groupPosition).getList(); list.get(childPosition).setChileFlag(checked1); createSum(); // cacuteTotalNum( ); for (int i = 0; i < list.size(); i++) { Boolean chileFlag = list.get(i).getChileFlag(); // onGetUid.getUid(data.get(groupPosition).getList().get(childPosition).getPid()); if (chileFlag == false) { flag = false; } } data.get(groupPosition).setGroupFlag(flag); setNotifyDataSetChanged(); } }); return convertView; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return false; } public void createSum(){ double sum=0; for(int i=0;i<data.size();i++){ List<Shopping_cart.DataBean.ListBean> list = data.get(i).getList(); for (int j = 0 ;j<list.size();j++){ if(list.get(j).getChileFlag()){ sum+=list.get(j).getNum()*list.get(j).getPrice(); } } } onGetSum.getPrice(sum); } class ViewHolder1{ CheckBox group_checkBox; TextView group_text; } class ViewHolder2{ CheckBox chile_checkBox; ImageView chile_imageView; TextView chile_title,chile_price,chile_text; Button button_jia,button_jian; } public void setNotifyDataSetChanged(){ //刷新适配器 notifyDataSetChanged(); } public interface OnGetSum{ void getPrice(double sum); } public void setOnGetSum(OnGetSum onGetSum){ this.onGetSum = onGetSum; } }
Shopping_Activity
package com.bwie.monthlyexaminationsimulation.view; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.ExpandableListView; import android.widget.ImageView; import android.widget.TextView; import com.bwie.monthlyexaminationsimulation.MainActivity; import com.bwie.monthlyexaminationsimulation.R; import com.bwie.monthlyexaminationsimulation.adapter.Shopping_Cart_Adapter; import com.bwie.monthlyexaminationsimulation.bean.Shopping_cart; import com.bwie.monthlyexaminationsimulation.presenter.Shopping_Cart_Presenter; import java.util.List; public class Main3Activity extends AppCompatActivity implements Shopping_Cart_View{ private ExpandableListView expandableListView; private ImageView shopping_fanhui; private TextView shopping_heji; private Shopping_Cart_Adapter shopping_cart_adapter; private double p=0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main3); shopping_heji = findViewById(R.id.shopping_heji); expandableListView = findViewById(R.id.shopping_cart_listview); shopping_fanhui = findViewById(R.id.shopping_fanhui); shopping_heji.setText(p+""); shopping_fanhui.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent =new Intent(Main3Activity.this, MainActivity.class); startActivity(intent); } }); Shopping_Cart_Presenter shopping_cart_presenter = new Shopping_Cart_Presenter(Main3Activity.this); shopping_cart_presenter.Home(); } @Override public void getSuccess(Shopping_cart shopping_cart) { List<Shopping_cart.DataBean> data = shopping_cart.getData(); shopping_cart_adapter = new Shopping_Cart_Adapter(data,Main3Activity.this); expandableListView.setAdapter(shopping_cart_adapter); int count = expandableListView.getCount(); for(int i=0;i<count;i++){ expandableListView.expandGroup(i); } shopping_cart_adapter.setOnGetSum(new Shopping_Cart_Adapter.OnGetSum() { @Override public void getPrice(double sum) { p=sum; Log.d("priceAll",sum+"================="); shopping_heji.setText(p+""); } }); } }
Shopping_presenter
package com.bwie.monthlyexaminationsimulation.presenter; import com.bwie.monthlyexaminationsimulation.bean.Shopping_cart; import com.bwie.monthlyexaminationsimulation.model.Shopping_Cart_Model; import com.bwie.monthlyexaminationsimulation.view.Shopping_Cart_View; /** * author:Created by Administrator on 2018/7/26. */ public class Shopping_Cart_Presenter { private Shopping_Cart_View shopping_cart_views; private final Shopping_Cart_Model shopping_cart_model; public Shopping_Cart_Presenter(Shopping_Cart_View shopping_cart_view){ this.shopping_cart_views =shopping_cart_view; shopping_cart_model = new Shopping_Cart_Model(); } public void Home(){ shopping_cart_model.getData(new Shopping_Cart_Model.IModel() { @Override public void getSuccess(Shopping_cart shopping_cart) { shopping_cart_views.getSuccess(shopping_cart); } }); } }