全选 反选 以及总价的计算

@Override
    public void notifyAllCheckboxStatus() {

        StringBuilder stringBuilder = new StringBuilder();
        if (cartAdapter != null) {
            for (int i = 0; i < cartAdapter.getCartList().size(); i++) {

                stringBuilder.append(cartAdapter.getCartList().get(i).isSelected());

                for (int i1 = 0; i1 < cartAdapter.getCartList().get(i).getList().size(); i1++) {

                    stringBuilder.append(cartAdapter.getCartList().get(i).getList().get(i1).isSelected());
 
                }
            }
        }

        System.out.println("sb=====" + stringBuilder.toString());

        //truetruefalsetruefalse

        if (stringBuilder.toString().contains("false")) {
            allCheckbox.setChecked(false);
//            totalPrice = 0;
        } else {
            allCheckbox.setChecked(true);
        }

        totalPrice();//计算总价

    }


    /**
     * 计算总价
     */
    private void totalPrice() {

        double totalPrice = 0;

        for (int i = 0; i < cartAdapter.getCartList().size(); i++) {

            for (int i1 = 0; i1 < cartAdapter.getCartList().get(i).getList().size(); i1++) {

                //计算总价的关键代码块
                if (cartAdapter.getCartList().get(i).getList().get(i1).isSelected()) {
                    CartBean.DataBean.ListBean listBean = cartAdapter.getCartList().get(i).getList().get(i1);
                    totalPrice += listBean.getBargainPrice() * listBean.getTotalNum();
                }


            }
        }
        totalPriceTv.setText("总价:¥"+totalPrice);

    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个简单的购物车例子: ```html <template> <div> <table> <thead> <tr> <th><input type="checkbox" v-model="selectAll" @change="toggleSelectAll"/></th> <th>商品名称</th> <th>单价</th> <th>数量</th> <th>小计</th> </tr> </thead> <tbody> <tr v-for="(item, index) in items" :key="index"> <td><input type="checkbox" v-model="item.selected"/></td> <td>{{ item.name }}</td> <td>{{ item.price }}</td> <td> <button @click="decreaseQuantity(item)" :disabled="item.quantity === 1">-</button> <span>{{ item.quantity }}</span> <button @click="increaseQuantity(item)">+</button> </td> <td>{{ item.price * item.quantity }}</td> </tr> </tbody> <tfoot> <tr> <td><button @click="selectAll = !selectAll">{{ selectAll ? '取消全选' : '全选' }}</button></td> <td colspan="3">总价:</td> <td>{{ totalPrice }}</td> </tr> </tfoot> </table> </div> </template> <script> export default { data() { return { items: [ { name: '商品1', price: 10, quantity: 1, selected: false }, { name: '商品2', price: 20, quantity: 2, selected: false }, { name: '商品3', price: 30, quantity: 3, selected: false }, ], selectAll: false, }; }, computed: { totalPrice() { return this.items .filter(item => item.selected) .reduce((total, item) => total + item.price * item.quantity, 0); }, }, methods: { toggleSelectAll() { if (this.selectAll) { this.items.forEach(item => item.selected = true); } else { this.items.forEach(item => item.selected = false); } }, increaseQuantity(item) { item.quantity += 1; }, decreaseQuantity(item) { item.quantity -= 1; }, }, }; </script> ``` 在这个例子中,我们使用 `v-model` 来绑定复选框的状态和每个商品的选择状态。我们还使用 `computed` 属性来计算购物车中所有已选择商品的总价。最后,我们使用 `methods` 中的函数来增加或减少商品的数量,并使用 `v-bind` 来禁用减少数量按钮(当商品数量为1时)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值