购物车和订单

 

 

----购物车类-----

 

 

package com.example.administrator.gouwuche_20171219.view.activity;

import android.content.Intent;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;

import com.example.administrator.gouwuche_20171219.R;
import com.example.administrator.gouwuche_20171219.model.bean.CartBean;
import com.example.administrator.gouwuche_20171219.model.bean.CountPriceBean;
import com.example.administrator.gouwuche_20171219.presenter.CartPresenter;
import com.example.administrator.gouwuche_20171219.util.ApiUtil;
import com.example.administrator.gouwuche_20171219.view.adapter.CartAdapter;
import com.example.administrator.gouwuche_20171219.view.interfac.CartView;
import com.example.administrator.gouwuche_20171219.view.zidingyi_shitu.CartExpanableListview;
import com.nostra13.universalimageloader.utils.L;

public class CartActivity extends AppCompatActivity implements CartView{

    private CartExpanableListview expanable_listview;
    private CheckBox check_all;
    private TextView text_total;
    private TextView text_buy;
    private CartPresenter cartPresenter;
    private RelativeLayout relative_progress;
    private LinearLayout linear_layout;
    private CartBean cartBean;
    Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            if (msg.what==0){
                countPriceBean = (CountPriceBean) msg.obj;
                text_total.setText("合计:¥"+ countPriceBean.getPriceString());
                text_buy.setText("去结算("+ countPriceBean.getCount()+")");
            }

        }
    };
    private CartAdapter cartAdapter;
    private CountPriceBean countPriceBean;

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

        //二级列表
        expanable_listview = findViewById(R.id.expanable_listview);
        //复选框 全选按钮
        check_all = findViewById(R.id.check_all);
        //合计  价钱
        text_total = findViewById(R.id.text_total);
        //去结算 数量
        text_buy = findViewById(R.id.text_buy);

        relative_progress = findViewById(R.id.relative_progress);

        linear_layout = findViewById(R.id.linear_layout);
        //去掉默认的指示器
        expanable_listview.setGroupIndicator(null);
        //获取数据   关联p层
        cartPresenter = new CartPresenter(this);

        //复选框的点击事件
        check_all.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                cartAdapter.setAllChildState(check_all.isChecked());
            }
        });

        //点击去结算
        text_buy.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(CartActivity.this, JieSuanActivity.class);
                intent.putExtra("price",countPriceBean.getPriceString());
              startActivity(intent);
            }
        });
    }
    @Override
    protected void onResume() {
        super.onResume();
        relative_progress.setVisibility(View.VISIBLE);
        cartPresenter.getDataUrl(ApiUtil.selGouWuChe);
    }

    /**
     * 解决MVP内存泄漏
     */
    @Override
    protected void onDestroy() {
        super.onDestroy();
        //解除绑定
        if (cartPresenter!=null){
            cartPresenter.destroy();
        }
    }

    @Override
    public void success(final CartBean cartBean) {
        this.cartBean=cartBean;
        this.runOnUiThread(new Runnable() {
            @Override
            public void run() {

                relative_progress.setVisibility(View.GONE);
                if (cartBean!=null){
                    linear_layout.setVisibility(View.VISIBLE);
                    //1.根据组中子条目是否选中,,,决定该组是否选中...初始化一下每一组中isGroupCheck这个数据
                    for (int i=0;i<cartBean.getData().size();i++){
                         if (isAllChildInGroupSelected(i)){
                             cartBean.getData().get(i).setGroupChecked(true);
                         }
                    }
                    //2.根据每一个组是否选中的状态,,,初始化全选是否选中
                    check_all.setChecked(isAllGroupChecked());
                    //设置适配器
                    cartAdapter = new CartAdapter(CartActivity.this,cartBean,cartPresenter,handler);
                    expanable_listview.setAdapter(cartAdapter);

                    //展开
                    for (int i= 0;i<cartBean.getData().size();i++){
                        expanable_listview.expandGroup(i);
                    }
                    //3.根据子条目是否选中  初始化价格和数量
                    cartAdapter.sendPriceAndCount();
                }else {
                    //隐藏下面的全选.... 等
                    linear_layout.setVisibility(View.GONE);
                    //显示去逛逛,,,添加购物车
                    Toast.makeText(CartActivity.this,"购物车为空,去逛逛",Toast.LENGTH_SHORT).show();
                }
            }
        });


    }

    @Override
    public void failed(Exception e) {
        Toast.makeText(CartActivity.this,"数据出错",Toast.LENGTH_SHORT).show();
    }

private boolean isAllGroupChecked(){
        for (int i=0;i<cartBean.getData().size();i++){
            if (!cartBean.getData().get(i).isGroupChecked()){
                return false;
            }
        }
        return  true;
}

/**
 * 判断当前组里面所有的子条目是否选中
 * @param groupPosition
 * @return
 */
 private  boolean isAllChildInGroupSelected(int groupPosition){
     for (int i=0;i<cartBean.getData().get(groupPosition).getList().size();i++){
           if (cartBean.getData().get(groupPosition).getList().get(i).getSelected()==0){
               return  false;
           }
     }
     return true;
 }
}

 

 

-----适配器-----

 

package com.example.administrator.gouwuche_20171219.view.adapter;

import android.content.Context;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.example.administrator.gouwuche_20171219.R;
import com.example.administrator.gouwuche_20171219.model.bean.CartBean;
import com.example.administrator.gouwuche_20171219.model.bean.CountPriceBean;
import com.example.administrator.gouwuche_20171219.presenter.CartPresenter;
import com.example.administrator.gouwuche_20171219.util.ApiUtil;
import com.example.administrator.gouwuche_20171219.util.OkHttp3Util;

import java.io.IOException;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Response;

/**
 * Created by Administrator on 2017/12/19.
 */

public class CartAdapter extends BaseExpandableListAdapter{

    private final Handler handler;
    private  CartPresenter cartPresenter;
    Context context;
    CartBean cartBean;
    private int size;
    private int childI;
    private int allSize;
    private int index;

    public CartAdapter(Context context, CartBean cartBean, CartPresenter cartPresenter, Handler handler) {
        this.context = context;
        this.cartBean = cartBean;
        this.cartPresenter=cartPresenter;
        this.handler=handler;
    }

    @Override
    public int getGroupCount() {
        return cartBean.getData().size();
    }

    @Override
    public int getChildrenCount(int i) {
        return cartBean.getData().get(i).getList().size();
    }

    @Override
    public Object getGroup(int i) {
        return cartBean.getData().get(i);
    }

    @Override
    public Object getChild(int i, int i1) {
        return cartBean.getData().get(i).getList().get(i1);
    }

    @Override
    public long getGroupId(int i) {
        return i;
    }

    @Override
    public long getChildId(int i, int i1) {
        return i1;
    }

    @Override
    public boolean hasStableIds() {
        return true;
    }

    @Override
    public View getGroupView(int i, boolean b, View view, ViewGroup viewGroup) {
        final GroupHolder groupHolder;
        if (view==null){
            groupHolder = new GroupHolder();
           view=View.inflate(context, R.layout.group_item_layout,null);
           //复选框 一级列表
             groupHolder.checkBox=view.findViewById(R.id.check_group);
             //商家名称
             groupHolder.textView=view.findViewById(R.id.text_group);
             view.setTag(groupHolder);
        }else {
            groupHolder = (GroupHolder) view.getTag();
        }
        final CartBean.DataBean dataBean = cartBean.getData().get(i);
        groupHolder.textView.setText(dataBean.getSellerName());
        groupHolder.checkBox.setChecked(dataBean.isGroupChecked());
        groupHolder.checkBox.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                size = dataBean.getList().size();
                childI = 0;
                updateAllInGroup(groupHolder.checkBox.isChecked(),dataBean);
            }
        });
        return view;
    }

    private void updateAllInGroup(final boolean checked, final CartBean.DataBean dataBean) {
        CartBean.DataBean.ListBean listBean = dataBean.getList().get(childI);
        Map<String, String> map=new HashMap<>();
        map.put("uid","3690");
        map.put("sellerid", String.valueOf(listBean.getSellerid()));
        map.put("pid", String.valueOf(listBean.getPid()));
        map.put("selected", String.valueOf(chec
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值