android购物车界面实现,Android实现购物车整体页面逻辑详解
本文为大家讲解了Android实现购物车的整体页面逻辑,供大家参考,具体内容如下MainActivity.javapublic class MainActivity extends AppCompatActivity implements View.OnClickListener{String url = "http://www.easck.com/product/getCarts";privat
本文为大家讲解了Android实现购物车的整体页面逻辑,供大家参考,具体内容如下
MainActivity.java
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
String url = "http://www.easck.com/product/getCarts";
private ExpandableListView el_cart;
private CheckBox cb_cart_all_select;
private TextView tv_cart_total_price;
private Button btn_cart_pay;
MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initData();
}
private void initData() {
HashMap map = new HashMap<>();
map.put("uid","71");
OkhtttpUtils.getInstance().doPost(url, map, new OkhtttpUtils.OkCallback() {
@Override
public void onFailure(Exception e) {
}
@Override
public void onResponse(String json) {
CartInfo cartInfo = new Gson().fromJson(json, CartInfo.class);
if ("0".equals(cartInfo.getCode())){
List data = cartInfo.getData();
adapter = new MyAdapter(data);
el_cart.setAdapter(adapter);
//展开二级列表
for(int x=0; x
el_cart.expandGroup(x);
}
adapter.setOnCartListChangeListener(new MyAdapter.onCartListChangeListener() {
@Override
public void onSellerCheckedChange(int i) {
//商家被点击
boolean currentSellerAllProductSelected = adapter.isCurrentSellerAllProductSelected(i);
adapter.changeCurrentSellerAllProductsStatus(i, !currentSellerAllProductSelected);
adapter.notifyDataSetChanged();
//B.刷新底部数据
refreshSelectedAndTotalPriceAndTotalNumber();
}
@Override
public void onProductCheckedChange(int i, int i1) {
//点击商品得checkbox
adapter.changeCurrentProductStatus(i,i1);
adapter.notifyDataSetChanged();
//B.刷新底部数据
refreshSelectedAndTotalPriceAndTotalNumber();
}
@Override
public void onProducNumberChange(int i, int i1, int number) {
//当加减被点击
adapter.changeCurrentProductNumber(i,i1,number);
adapter.notifyDataSetChanged();
//B.刷新底部数据
refreshSelectedAndTotalPriceAndTotalNumber();
}
});
}
}
});
}
//B.刷新checkbox状态和总价和总数量
private void refreshSelectedAndTotalPriceAndTotalNumber() {
//去判断是否所有得商品都被选中
boolean allProductsSelected = adapter.isAllProductsSelected();
//设置给全选checkBox
cb_cart_all_select.setChecked(allProductsSelected);
//计算总价
float totalPrice = adapter.calculateTotalPrice();
tv_cart_total_price.setText("总价 " + totalPrice);
//计算总数量
int totalNumber = adapter.calculateTotalNumber();
btn_cart_pay.setText("去结算(" + totalNumber + ")");
}
//初始化的操作
private void initView() {
el_cart = (ExpandableListView) findViewById(R.id.el_cart);
cb_cart_all_select = (CheckBox) findViewById(R.id.cb_cart_all_select);
tv_cart_total_price = (TextView) findViewById(R.id.tv_cart_total_price);
btn_cart_pay = (Button) findViewById(R.id.btn_cart_pay);
cb_cart_all_select.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.cb_cart_all_select:
//底部全选按钮
//时候所有得商品都被选中
boolean allProductsSelected = adapter.isAllProductsSelected();
adapter.changeAllProductStatus(!allProductsSelected);
adapter.notifyDataSetChanged();
//刷新底部数据
refreshSelectedAndTotalPriceAndTotalNumber();
break;
}
}
}
更多推荐
所有评论(0)