RetrofitBOE

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);
            }
        });
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值