Android實現(xiàn)購物車整體頁面邏輯詳解-創(chuàng)新互聯(lián)

本文為大家講解了Android實現(xiàn)購物車的整體頁面邏輯,供大家參考,具體內(nèi)容如下

創(chuàng)新互聯(lián)是一家網(wǎng)站設計公司,集創(chuàng)意、互聯(lián)網(wǎng)應用、軟件技術為一體的創(chuàng)意網(wǎng)站建設服務商,主營產(chǎn)品:成都響應式網(wǎng)站建設公司、高端網(wǎng)站設計、全網(wǎng)整合營銷推廣。我們專注企業(yè)品牌在網(wǎng)站中的整體樹立,網(wǎng)絡互動的體驗,以及在手機等移動端的優(yōu)質(zhì)呈現(xiàn)。成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設、移動互聯(lián)產(chǎn)品、網(wǎng)絡運營、VI設計、云產(chǎn)品.運維為核心業(yè)務。為用戶提供一站式解決方案,我們深知市場的競爭激烈,認真對待每位客戶,為客戶提供賞析悅目的作品,網(wǎng)站的價值服務。

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.刷新底部數(shù)據(jù)
              refreshSelectedAndTotalPriceAndTotalNumber();
            }

            @Override
            public void onProductCheckedChange(int i, int i1) {

              //點擊商品得checkbox
              adapter.changeCurrentProductStatus(i,i1);
              adapter.notifyDataSetChanged();
              //B.刷新底部數(shù)據(jù)
              refreshSelectedAndTotalPriceAndTotalNumber();
            }

            @Override
            public void onProducNumberChange(int i, int i1, int number) {

              //當加減被點擊
              adapter.changeCurrentProductNumber(i,i1,number);
              adapter.notifyDataSetChanged();
              //B.刷新底部數(shù)據(jù)
              refreshSelectedAndTotalPriceAndTotalNumber();
            }
          });
        }
      }
    });
  }

  //B.刷新checkbox狀態(tài)和總價和總數(shù)量
  private void refreshSelectedAndTotalPriceAndTotalNumber() {
    //去判斷是否所有得商品都被選中
    boolean allProductsSelected = adapter.isAllProductsSelected();
    //設置給全選checkBox
    cb_cart_all_select.setChecked(allProductsSelected);

    //計算總價
    float totalPrice = adapter.calculateTotalPrice();
    tv_cart_total_price.setText("總價 " + totalPrice);

    //計算總數(shù)量
    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();
        //刷新底部數(shù)據(jù)
        refreshSelectedAndTotalPriceAndTotalNumber();
        break;
    }
  }
}

文章標題:Android實現(xiàn)購物車整體頁面邏輯詳解-創(chuàng)新互聯(lián)
分享URL:http://bm7419.com/article34/dpdjse.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版企業(yè)網(wǎng)站制作、App開發(fā)、企業(yè)建站、外貿(mào)網(wǎng)站建設、網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)