本文为大家讲解了Android实现购物车的整体页面逻辑,供大家参考,具体内容如下
MainActivity.java
public class MainActivity extends AppCompatActivity implements View.OnClickListener{ String url = "http://www.zhaoapi.cn/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<String, String> 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<CartInfo.DataBean> data = cartInfo.getData(); adapter = new MyAdapter(data); el_cart.setAdapter(adapter); //展开二级列表 for(int x=0; x<data.size(); 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; } } }
文章标题:Android实现购物车整体页面逻辑详解-创新互联
分享URL:https://www.cdcxhl.com/article34/dpdjse.html
成都网站建设公司_创新互联,为您提供网站改版、企业网站制作、App开发、企业建站、外贸网站建设、网站制作
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联