public class MainActivity extends AppCompatActivity implements IView, DView {
List<GroupBean> groupBeen = new ArrayList<>();
List<List<ChildBean>> childBeen = new ArrayList<>();
@BindView(R.id.edit)
TextView edit;
@BindView(R.id.exListView)
ExpandableListView exListView;
@BindView(R.id.all_chekbox)
public CheckBox allChekbox;
@BindView(R.id.total_price)
TextView totalPrice;
@BindView(R.id.total_number)
TextView totalNumber;
@BindView(R.id.tv_go_to_del)
TextView tvGoToDel;
@BindView(R.id.tv_go_to_pay)
TextView tvGoToPay;
private ShopCarPersenter persenter;
private ExpandableAdapter expandableAdapter;
private DelPersenter delPersenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
persenter = new ShopCarPersenter();
delPersenter = new DelPersenter();
delPersenter.attchView(this);
persenter.attchView(this);
persenter.getData("1284","");
expandableAdapter = new ExpandableAdapter(this, groupBeen, childBeen);
exListView.setAdapter(expandableAdapter);
for (int i = 0; i < expandableAdapter.getGroupCount(); i++) {
exListView.expandGroup(i);
}
exListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView expandableListView, View view, int i, long l) {
return true;
}
});
allChekbox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
boolean checked = allChekbox.isChecked();
//改变一级item复选框
for (GroupBean i : groupBeen) {
i.setGropuCb(checked);
}
//改变二级item复选框
for (List<ChildBean> i1 : childBeen) {
for (int r = 0; r < i1.size(); r++) {
i1.get(r).setChildCb(checked);
}
}
expandableAdapter.notifyDataSetChanged();
changesum(childBeen);
}
});
}
@Override
public void onSuccess(Object o) {
if (o != null) {
groupBeen.clear();
childBeen.clear();
ShopCarBean shopCarBean = (ShopCarBean) o;
List<ShopCarBean.DataBean> groupData = shopCarBean.getData();
for (ShopCarBean.DataBean group : groupData) {
groupBeen.add(new GroupBean(group.getSellerName(), false));
List<ChildBean> childOne = new ArrayList<>();
for (ShopCarBean.DataBean.ListBean child : group.getList()) {
String[] split = child.getImages().split("\\|");
childOne.add(new ChildBean(child.getTitle(), split[0], child.getPrice(), child.getNum(), false,child.getPid()+""));
}
childBeen.add(childOne);
}
for (int i = 0; i < expandableAdapter.getGroupCount(); i++) {
exListView.expandGroup(i);
}
expandableAdapter.notifyDataSetChanged();
}
}
@Override
public void onFailed(String msg) {
}
//计算和数量总价
public void changesum(List<List<ChildBean>> childBeen) {
int count = 0;
double sum = 0;
for (List<ChildBean> i1 : childBeen) {
for (int r = 0; r < i1.size(); r++) {
boolean childCb1 = i1.get(r).isChildCb();
if (childCb1) {
double price = i1.get(r).getPrice();
int num = i1.get(r).getNum();
sum += price * num;
count++;
}
}
}
totalPrice.setText("¥" + sum);
totalNumber.setText("共有商品:" + count + "件");
}
@Override
protected void onDestroy() {
super.onDestroy();
if (persenter != null) {
persenter.detachView();
}
}
@OnClick({R.id.edit, R.id.tv_go_to_del})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.edit:
String trim = edit.getText().toString().trim();
if (trim.equals("编辑")) {
edit.setText("完成");
tvGoToDel.setVisibility(View.VISIBLE);
tvGoToPay.setVisibility(View.GONE);
}else{
edit.setText("编辑");
tvGoToDel.setVisibility(View.GONE);
tvGoToPay.setVisibility(View.VISIBLE);
}
break;
case R.id.tv_go_to_del:
for (int t = 0; t < childBeen.size(); t++) {
for (int j = 0; j < childBeen.get(t).size(); j++) {
boolean childCb = childBeen.get(t).get(j).isChildCb();
if(childCb){
delPersenter.getData("1284", childBeen.get(t).get(j).getPid());
}
try {
Thread.sleep(50);
} catch (InterruptedException e) {
}
}
}
if(allChekbox.isChecked()){
childBeen.clear();
groupBeen.clear();
}
changesum(childBeen);
allChekbox.setChecked(false);
expandableAdapter.notifyDataSetChanged();
persenter.getData("1284","");
break;
}
}
@Override
public void success(DelBean delBean) {
if(delBean!=null){
Log.d("yy", "success: "+"删除成功"+delBean.getCode());
}
}
@Override
public void failed(String msg) {
}
}
1