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