二级购物车

package bw.com.shopcartej;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;

import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;

public class MainActivity extends AppCompatActivity implements ShowView {

@BindView(R.id.rlv)
RecyclerView rlv;
int userid = 51;
@BindView(R.id.ck)
CheckBox ck;
@BindView(R.id.zongjia)
TextView zongjia;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ButterKnife.bind(this);


    Presenter presenter = new Presenter(this);

    presenter.send(userid);


}

@Override
public void show(final ShopcartJson shopcartJson) {
    Log.i("eee", shopcartJson.toString());
    //布局管理器
    final LinearLayoutManager layoutManager = new LinearLayoutManager(this);
    rlv.setLayoutManager(layoutManager);
    //适配器
    final ShopcartAdapter shopcartAdapter = new ShopcartAdapter(this, shopcartJson);
    rlv.setAdapter(shopcartAdapter);


    //全选
    ck.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            int sum=0;
            boolean checked = ck.isChecked();
            if (checked){
                List<ShopcartData> data = shopcartJson.getData();
                for (int i=0;i<data.size();i++){
                    ShopcartData shopcartData = data.get(i);
                    shopcartData.setChecked(true);
                    List<ShopcartDataa> list = shopcartData.getList();
                    for (int j=0;j<list.size();j++){
                        ShopcartDataa shopcartDataa = list.get(j);
                        shopcartDataa.setChecked(true);
                        int num = shopcartDataa.getNum();
                        double price = shopcartDataa.getPrice();
                        sum+=num*price;
                    }
                }
                zongjia.setText("总价为:"+sum);
            }else {
                List<ShopcartData> data = shopcartJson.getData();
                for (int i=0;i<data.size();i++){
                    ShopcartData shopcartData = data.get(i);
                    shopcartData.setChecked(false);
                    List<ShopcartDataa> list = shopcartData.getList();
                    for (int j=0;j<list.size();j++){
                        ShopcartDataa shopcartDataa = list.get(j);
                        shopcartDataa.setChecked(false);
                    }
                }
                zongjia.setText("总价为:"+0);
            }
            shopcartAdapter.notifyDataSetChanged();
        }
    });

    //一级
    shopcartAdapter.setOnYijiLisenter(new ShopcartAdapter.OnYijiLisenter() {
        @Override
        public void onYiji(ShopcartJson shopcartJson) {
            List<ShopcartData> data = shopcartJson.getData();
            //初始化总价
            int sum=0;
            int checknum=0;
            for (int i=0;i<data.size();i++){
                ShopcartData shopcartData = data.get(i);
                boolean checked = shopcartData.isChecked();
                //如果一级列表被选中 二级所有都必须选中
                if (checked){
                    //得到二级
                    List<ShopcartDataa> list = shopcartData.getList();
                    for (int j=0;j<list.size();j++){
                        ShopcartDataa shopcartDataa = list.get(j);
                        shopcartDataa.setChecked(true);
                        sum+=shopcartDataa.getNum()*shopcartDataa.getPrice();
                    }
                    //被选中的计数
                    checknum++;
                }else {
                    //得到二级
                    List<ShopcartDataa> list = shopcartData.getList();
                    for (int j=0;j<list.size();j++){
                        ShopcartDataa shopcartDataa = list.get(j);
                        shopcartDataa.setChecked(false);
                    }
                }
            }
            if (checknum==shopcartJson.getData().size()){
                //则底下的全选框选中
                ck.setChecked(true);
                //显示价格
                zongjia.setText(sum+"");
            }else {
                //则底下的全选框不选中
                ck.setChecked(false);
                //显示价格
                zongjia.setText(sum+"");
            }
            //刷新适配器
            shopcartAdapter.notifyDataSetChanged();
        }
    });

    //二级
    shopcartAdapter.setOnErjiLisenter(new ShopcartAdapter.OnErjiLisenter() {
        @Override
        public void onErji(ShopcartJson shopcartJson) {
            List<ShopcartData> data = shopcartJson.getData();
            //初始化
            int sum=0;
            //最外层的ck
            int allchecknum=0;
            //一级的ck
            int firstnum=0;
            for (int i=0;i<data.size();i++){
                ShopcartData shopcartData = data.get(i);
                List<ShopcartDataa> list = shopcartData.getList();
                    for (int j=0;j<list.size();j++){
                        ShopcartDataa shopcartDataa = list.get(j);
                        boolean checked1 = shopcartDataa.isChecked();
                        if (checked1){
                            sum+=shopcartDataa.getNum()*shopcartDataa.getPrice();
                            firstnum++;
                        }
                    }
                    if (firstnum==list.size()){
                        shopcartData.setChecked(true);
                        allchecknum++;
                    }else {
                        shopcartData.setChecked(false);
                    }
                    firstnum=0;
            }
            //判断一级选中的个数等不等于集合总数
            if (allchecknum==data.size()){
                ck.setChecked(true);
                zongjia.setText(sum+"");
            }else {
                ck.setChecked(false);
                zongjia.setText(sum+"");
            }
            //刷新适配器
            shopcartAdapter.notifyDataSetChanged();
        }
    });

    //
    shopcartAdapter.setOnJiaJianLisenter(new ShopcartAdapter.OnJiaJianLisenter() {
        @Override
        public void onJiaJian() {
            int sum=0;
            List<ShopcartData> data = shopcartJson.getData();
            for (int i=0;i<data.size();i++){
                ShopcartData shopcartData = data.get(i);
                boolean checked = shopcartData.isChecked();
                if (checked){
                    List<ShopcartDataa> list = shopcartData.getList();
                    for (int j=0;j<list.size();j++){
                        ShopcartDataa shopcartDataa = list.get(j);
                        boolean checked1 = shopcartDataa.isChecked();
                        if (checked1){
                            sum+=shopcartDataa.getNum()*shopcartDataa.getPrice();
                        }
                    }
                }else {
                    List<ShopcartDataa> list = shopcartData.getList();
                    for (int j=0;j<list.size();j++){
                        ShopcartDataa shopcartDataa = list.get(j);
                        boolean checked1 = shopcartDataa.isChecked();
                        if (checked1){
                            sum+=shopcartDataa.getNum()*shopcartDataa.getPrice();
                        }
                    }
                }

            }
            zongjia.setText(sum+"");
        }
    });


}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值