Cart首页

package com.example.app.activity;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.widget.CheckBox;
import android.widget.CompoundButton;

import com.example.app.R;
import com.example.app.adapter.CartAdapter;
import com.example.app.callback.CartUICallback;
import com.example.app.contract.CartContract;
import com.example.app.entity.CartBean;
import com.example.app.presenter.CartPresenter;
import com.jcodecraeer.xrecyclerview.XRecyclerView;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class CartActivity extends AppCompatActivity implements CartContract.ICartView, CartUICallback, XRecyclerView.LoadingListener {

private CartPresenter cartPresenter;
private List<CartBean.Cart> carts;
private HashMap<String, String> params;
private int page = 1;//页码
private XRecyclerView xRecyclerView;
private CheckBox checkBox;
private CartAdapter cartAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_cart);
    initView();
    initData();
}

private void initData() {
    cartPresenter = new CartPresenter(this);
    carts = new ArrayList<>();

    requestData();
}

/**
 * 请求购物车数据
 */
private void requestData() {
    params = new HashMap<>();
    params.put("uid", "51");
    params.put("page", 1 + "");

    cartPresenter.getCarts(params);
}

/**
 * 初始化view
 */
private void initView() {
    xRecyclerView = findViewById(R.id.rv);

    xRecyclerView.setLoadingListener(this);//设置加载监听器
    xRecyclerView.setLoadingMoreEnabled(true);//设置上拉加载
    xRecyclerView.setLayoutManager(new LinearLayoutManager(this));
    checkBox = findViewById(R.id.checkbox);
    //设置全选反选按钮
    checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

            if (isChecked) {//全选按钮选中
                for (CartBean.Cart cart : carts) {
                    cart.isChecked = true;//设置一级商家选中
                    for (CartBean.Cart.Product product : cart.list) {
                        product.isProductisChecked = true;//设置二级商品选中
                    }
                }
            } else {//未选中
                for (CartBean.Cart cart : carts) {
                    cart.isChecked = false;//设置一级商家未选中
                    for (CartBean.Cart.Product product : cart.list) {
                        product.isProductisChecked = false;//设置二级商品未选中
                    }
                }
            }
            //通知刷新适配器
            cartAdapter.notifyDataSetChanged();

            getTotalPrice();
        }
    });
}

/**
 * 获取总价
 */
private void getTotalPrice() {
    double totalprice = 0;
    //遍历所有商品计算总价
    for (CartBean.Cart cart : cartAdapter.getCarts()) {
        //得到最新的数据
        for (CartBean.Cart.Product product : cart.list) {
            if (product.isProductisChecked) {
                totalprice += product.price * product.productNum;
            }
        }
    }
    //设置总价
    checkBox.setText("¥" + totalprice);
}

/**
 * 通知底部导航栏总价联动
 */
@Override
public void notifyCart() {
    getTotalPrice();
}

@Override
public void success(List<CartBean.Cart> list) {

    if (list != null) {

        carts = list;

        for (CartBean.Cart cart : carts) {
            for (CartBean.Cart.Product product : cart.list) {
                product.productNum = 1;
            }
        }

        if (page == 1) {//判断
            xRecyclerView.refreshComplete();
            cartAdapter = new CartAdapter(this, carts);
            cartAdapter.setCartCallback(this);
            xRecyclerView.setAdapter(cartAdapter);
        } else {
            //上拉
            if (cartAdapter == null) {
                cartAdapter = new CartAdapter(this, carts);
                cartAdapter.setCartCallback(this);
                xRecyclerView.setAdapter(cartAdapter);
            } else {
                cartAdapter.addData(list);
            }
            xRecyclerView.loadMoreComplete();
        }
    }

}

@Override
public void failure(String msg) {

}

/**
 * 下拉刷新
 */
@Override
public void onRefresh() {
    page = 1;
    requestData();
}

/**
 * 加载更多
 */
@Override
public void onLoadMore() {
    xRecyclerView.loadMoreComplete();
}

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值