Android实现购物车整体页面逻辑详解-创新互联

本文为大家讲解了Android实现购物车的整体页面逻辑,供大家参考,具体内容如下

创新互联是一家网站设计公司,集创意、互联网应用、软件技术为一体的创意网站建设服务商,主营产品:成都响应式网站建设公司高端网站设计全网整合营销推广。我们专注企业品牌在网站中的整体树立,网络互动的体验,以及在手机等移动端的优质呈现。成都做网站、成都网站制作、成都外贸网站建设、移动互联产品、网络运营、VI设计、云产品.运维为核心业务。为用户提供一站式解决方案,我们深知市场的竞争激烈,认真对待每位客户,为客户提供赏析悦目的作品,网站的价值服务。

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。内容未经允许不得转载,或转载时需注明来源: 创新互联

小程序开发