购物车activity

本文详细介绍了购物车活动组件的设计与实现过程,包括初始化布局、获取数据、设置适配器和监听器等关键步骤,展示了如何使用ExpandableListView实现商品分组展示,以及通过自定义适配器和监听器来响应用户操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



public class CartActivity extends BaseCartActivity<CartPresenterImpl> implements ICartView {

    private static final String TAG = "CartActivity";
    private ExpandableListView expandableListView;
    private MyExpandAdapter myExpandAdapter;
    private CheckBox quan;
    private TextView total;
    private TextView sum;
    private List<CartBean.DataBean> cartData;

    @Override
    protected int initLayout() {
        return R.layout.activity_cart;
    }

    @Override
    protected CartPresenterImpl getPresenter() {
        presenter = new CartPresenterImpl(this);
        presenter.attach(this);
        return presenter;
    }

    @Override
    protected void initView() {
        expandableListView = findViewById(R.id.cart_expand);
        expandableListView.setGroupIndicator(null);

        myExpandAdapter = new MyExpandAdapter(this);
        expandableListView.setAdapter(myExpandAdapter);

        quan = findViewById(R.id.cart_quanxuan);
        total = findViewById(R.id.cart_total);
        sum = findViewById(R.id.cart_sum);

    }

    @Override
    protected void initData() {
//        4243
        presenter.getCartInfo(4243);
    }

    @Override
    protected void initClick() {

    }

    @Override
    public void getCartData(CartBean bean) {
        Log.d(TAG, "getCartData: " + bean.getCode());
        cartData = bean.getData();
        myExpandAdapter.add(cartData);


        /************************************************/
        myExpandAdapter.setOnCartListener(new MyExpandAdapter.onCartListener() {
            @Override
            public void onGroupChecked(int groupId) {
                boolean b = myExpandAdapter.groupIsSlected(groupId);
                myExpandAdapter.setGroupSlected(groupId,!b);
                myExpandAdapter.notifyDataSetChanged();
                //底部刷新
                refreshBottom();
            }

            @Override
            public void onGoodChecked(int groupId, int childId) {
                myExpandAdapter.setGroupAndChildSlected(groupId, childId);
                myExpandAdapter.notifyDataSetChanged();
                //底部刷新
                refreshBottom();
            }

            @Override
            public void onGoodNumChange(int sellerid, int pid, int num, String selected, int groupId, int childId) {
                myExpandAdapter.setNumber1(groupId, childId, num);
                myExpandAdapter.notifyDataSetChanged();
                refreshBottom();
                //联网更新
                presenter.updata("4243",sellerid+"",pid+"",num+"",selected);
            }

            @Override
            public void onDelete(final int groupId, final int childId, String pid) {
                AlertDialog.Builder builder = new AlertDialog.Builder(CartActivity.this);
                builder.setMessage("是否删除当前商品")
                        .setNegativeButton("取消", null)
                        .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                // TODO: 2018/8/23 联网删除
                                myExpandAdapter.Removechild(groupId, childId);
                                myExpandAdapter.setNumber(groupId);
                                myExpandAdapter.notifyDataSetChanged();
                                // TODO: 2018/8/23
                                refreshBottom();
                                //联网删除

                            }
                        });
                AlertDialog alertDialog = builder.create();

                alertDialog.show();
            }
        });
        groupShow();
        refreshBottom();
        quan.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                boolean b = myExpandAdapter.ALLgroupIsSlected();
                myExpandAdapter.setAllSlected(!b);
                myExpandAdapter.notifyDataSetChanged();
                refreshBottom();
            }
        });

    }

    @Override
    public void updata(ShowBean bean) {
        if (bean.getCode().equals("0")){
            Toast.makeText(CartActivity.this,"刷新成功",Toast.LENGTH_SHORT).show();
        }
    }

    private void groupShow() {
        int groupCount = myExpandAdapter.getGroupCount();
        for (int i = 0; i < groupCount; i++) {
            expandableListView.expandGroup(i);
        }
    }
    public void refreshBottom(){
        boolean b = myExpandAdapter.ALLgroupIsSlected();
        quan.setChecked(b);
        total.setText("$:"+myExpandAdapter.getTotalPrice());
        sum.setText(myExpandAdapter.getSum()+"");
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值