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);
}
});
}
}

被折叠的 条评论
为什么被折叠?



