public class MainActivity extends AppCompatActivity implements View.OnClickListener,IContract.IView {
private ExpandableListView elcShowMain;
private CheckBox cbAllCheckMain;
private TextView btnAllPriceMain;
private Button btnAllNumberMain;
private MyAdapter myAdapter;
private IContract.IPresenter presenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
presenter = new PresenterImpl();
presenter.attarchView(this);
presenter.pRequest();
}
private void initView() {
elcShowMain = (ExpandableListView) findViewById(R.id.elc_show_main);
cbAllCheckMain = (CheckBox) findViewById(R.id.cb_allCheck_main);
btnAllPriceMain = (TextView) findViewById(R.id.btn_allPrice_main);
btnAllNumberMain = (Button) findViewById(R.id.btn_allNumber_main);
btnAllNumberMain.setOnClickListener(this);
cbAllCheckMain.setOnClickListener(this);
}
private void refreshAllSelectedAndTotalPriceAndTotalNumber() {
//全选按钮
boolean allProductsSelected = myAdapter.isAllProductsSelected();
cbAllCheckMain.setChecked(allProductsSelected);
//计算总金额
float totalPrice = myAdapter.calculateTotalPrice();
btnAllPriceMain.setText("总价:¥" + totalPrice);
//计算总数量
int totalNumber = myAdapter.calculateTotalNumber();
btnAllNumberMain.setText("去结算(" + totalNumber + ")");
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.cb_allCheck_main:
//点击全选按钮
boolean allProductsSelected = myAdapter.isAllProductsSelected();
myAdapter.changeAllProductsSelected(!allProductsSelected);
myAdapter.notifyDataSetChanged();
//刷新底部的方法
refreshAllSelectedAndTotalPriceAndTotalNumber();
break;
case R.id.btn_allNumber_main:
startActivity(new Intent(MainActivity.this,OrderActivity.class));
break;
}
}
@Override
public void showData(String json) {
CartInfo cartInfo = new Gson().fromJson(json, CartInfo.class);
String code = cartInfo.getCode();
String msg = cartInfo.getMsg();
if ("0".equals(code)) {
List<CartInfo.DataBean> sellerData = cartInfo.getData();
//设置适配器
myAdapter = new MyAdapter(sellerData);
myAdapter.setOnCartListChangeListener(new MyAdapter.OnCartListChangeListener() {
@Override
public void SellerSelectedChange(int groupPosition) {
//点击商家
boolean currentSellerAllProductSelected = myAdapter.isCurrentSellerAllProductSelected(groupPosition);
//改变所有单前商家商品的选中状态
myAdapter.changeCurrentSellerAllProductSelected(groupPosition, !currentSellerAllProductSelected);
myAdapter.notifyDataSetChanged();
//刷新底部的方法
refreshAllSelectedAndTotalPriceAndTotalNumber();
}
@Override
public void ProductSelectedChange(int groupPosition, int childPosition) {
//点击商品
myAdapter.changeCurrentProductSelected(groupPosition, childPosition);
myAdapter.notifyDataSetChanged();
//刷新底部的方法
refreshAllSelectedAndTotalPriceAndTotalNumber();
}
@Override
public void ProductNumberChange(int groupPosition, int childPosition, int number) {
//点击加减
myAdapter.changeCurrentProductNumber(groupPosition, childPosition, number);
myAdapter.notifyDataSetChanged();
//刷新底部的方法
refreshAllSelectedAndTotalPriceAndTotalNumber();
}
});
elcShowMain.setAdapter(myAdapter);
//展开
for (int i = 0; i < sellerData.size(); i++) {
elcShowMain.expandGroup(i);
}
refreshAllSelectedAndTotalPriceAndTotalNumber();
} else {
Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
presenter.dearchView(this);
}
}