购物车

//MainACtivity
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private String url = “http://www.zhaoapi.cn/product/getCarts”;
private ExpandableListView elv;
private Button btn_cart_pay;
public MyAdapter adapter;
public CheckBox cb_cart_all_select;
private TextView tv_cart_total_price;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    elv=findViewById(R.id.el_cart);
    btn_cart_pay = findViewById(R.id.btn_cart_pay);
    cb_cart_all_select = findViewById(R.id.cb_cart_all_select);
    tv_cart_total_price = findViewById(R.id.tv_cart_total_price);
    cb_cart_all_select.setOnClickListener(this);
    HashMap<String,String> map=new HashMap<>();
    map.put("uid","71");
    HttpUtils.getInstence().DoPost(url, map, new ICanBack() {


        @Override
        public void success(String json) {
            Gson gson = new Gson();
            News news = gson.fromJson(json, News.class);

            if ("0".equals(news.getCode())){
                //得到数据集合
                List<News.DataBean> data = news.getData();
                //数据适配
               adapter = new MyAdapter(data);
                refreshSelectedAndTotalPriceAndTotalNumber();
                //对适配器设置监听,监听加减按钮,商家的复选框,子条目的复选框的改变
                adapter.setOnCKChangeListener(new MyAdapter.onCKChangeListener() {
                    @Override
                    public void onGroupCheckedChange(int groupPosition) {
                        boolean selected = adapter.isSelected(groupPosition);
                        adapter.groupCheckBoxChecked(groupPosition,!selected);
                        adapter.notifyDataSetChanged();
                        refreshSelectedAndTotalPriceAndTotalNumber();

                    }

                    @Override
                    public void onChilderCheckedChange(int groupPosition, int childPosition) {
                        adapter.ChilderCheckBoxChecked(groupPosition,childPosition);
                        adapter.notifyDataSetChanged();
                        refreshSelectedAndTotalPriceAndTotalNumber();
                    }

                    @Override
                    public void onNumberChange(int groupPosition, int childPosition, int number) {
                        adapter.onChangeNumber(groupPosition,childPosition,number);
                        adapter.notifyDataSetChanged();
                        refreshSelectedAndTotalPriceAndTotalNumber();
                    }
                });
                //设置adapter
                elv.setAdapter(adapter);
                //展开二级列表
                for(int x = 0;x<data.size();x++){
                   elv.expandGroup(x);
                }
            }




        }

        @Override
        public void failed(Exception e) {

        }
    });
}


//B.刷新底部全选框,textVIew和Button的UI,改变了CheckBox状态,总价,总数量
private void refreshSelectedAndTotalPriceAndTotalNumber() {
    //去判断是否所有的商品都被选中
    boolean allProductsSelected = adapter.isAllSelected();
    //把这个值设置给checkBox
    cb_cart_all_select.setChecked(allProductsSelected);

    //计算总计
    Double zPrice = adapter.onZPrice();
    tv_cart_total_price.setText("总计" + zPrice);

    //计算总数量
    int totalNumber = adapter.onZNumber();
    btn_cart_pay.setText("去结算(" + totalNumber + ")");

}

//底部全选
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.cb_cart_all_select:
boolean allProductsSelected = adapter.isAllSelected();
adapter.buttonCheckBoxChecked(!allProductsSelected);
adapter.notifyDataSetChanged();
//刷新底部的数据显示
refreshSelectedAndTotalPriceAndTotalNumber();
break;
}
}
}
//布局

<?xml version="1.0" encoding="utf-8"?>

<ExpandableListView
    android:id="@+id/el_cart"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginBottom="60dp" />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:layout_alignParentBottom="true"
    android:background="#eeeeee"
    android:gravity="center_vertical">

    <CheckBox
        android:id="@+id/cb_cart_all_select"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="全选" />

    <TextView
        android:id="@+id/tv_cart_total_price"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:paddingLeft="20dp"
        android:text="合计:¥0.00" />

    <Button
        android:id="@+id/btn_cart_pay"
        android:layout_width="100dp"
        android:layout_height="match_parent"
        android:text="去结算(0)" />
</LinearLayout>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值