添加或减少产品时如何计算总价

问题描述 投票:0回答:1

我正在尝试创建一个电子商务应用。目前,我正在创建购物车fragment。因此,我设法将商品添加到购物车并显示在CartFragment中。但是问题是,当增加一个产品的数量并检查所有产品时,总价格变为仅添加了产品数量的总价格。当所有产品的数量均为一时,总价将计算清单中所有产品的价格。

“

计算价格代码:

// All checkboxes must be checked
holder.checkBox.setChecked(true);
if (holder.checkBox.isChecked()) {
    int currentQty = dataItemCartList.get(position).getQuantity();

    if (currentQty > 0) {
        total_all_item += productList.get(position).getFinalPrice();
        listener.setTotalPrice(total_all_item * currentQty);
    }
}

// If user want to remove checklist in checkbox
holder.checkBox.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        if (holder.checkBox.isChecked()) {
            int currentQty = dataItemCartList.get(position).getQuantity();
            int finalQty = currentQty + 1;

            dataItemCheckout.setCurrentPrice(dataItemCartList.get(position).getCurrentPrice());
            dataItemCheckout.setLastPrice(dataItemCartList.get(position).getLastPrice());
            dataItemCheckout.setQuantity(dataItemCartList.get(position).getQuantity());
            dataItemCheckout.setNotes(dataItemCartList.get(position).getNotes());

            dataItemCheckoutList.add(dataItemCheckout);

            productCheckout.setPriceAfterDiscount(productList.get(position).getPriceAfterDiscount());
            productCheckout.setPriceRegular(productList.get(position).getPriceRegular());

            productCheckoutList.add(productCheckout);

            total_all_item += productList.get(position).getFinalPrice();
            listener.onItemCheck(dataItemCart, productCart, dataItemCheckoutList, productCheckoutList);
            listener.setTotalPrice(total_all_item * currentQty);
        } else {                    
            int currentQty = dataItemCartList.get(position).getQuantity();
            int finalQty = currentQty - 1;

            dataItemCheckoutList.remove(dataItemCheckout);
            productCheckoutList.remove(productCheckout);

            total_all_item -= productList.get(position).getFinalPrice();
            listener.onItemUncheck(dataItemCart, productCart, dataItemCheckoutList, productCheckoutList);
            listener.setTotalPrice(total_all_item * currentQty);
        }
    }
});

private int totalPriceAll(List<Product> total_all) {
    int total_price_per_item = 0;

    for (int i = 0; i < total_all.size(); i++) {
        total_price_per_item += total_all.get(i).getFinalPrice();
    }

    return total_price_per_item;
}

holder.btnPlus.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        if (holder.checkBox.isChecked()) {
            int total_harga = productList.get(position).getFinalPrice();
            int currentQty = dataItemCartList.get(position).getQuantity();
            int finalQty = currentQty + 1;
            int finalPrice = finalQty * total_harga;

            dataItemCartList.get(position).setQuantity(finalQty);
            productList.get(position).setFinalPrice(finalPrice);
            listener.setTotalPrice(finalPrice);

            holder.tvQuantity.setText(finalQty + "");
        } else {
            int total_harga = productList.get(position).getFinalPrice();
            int currentQty = dataItemCartList.get(position).getQuantity();
            int finalQty = currentQty + 1;
            int finalPrice = finalQty * total_harga;

            dataItemCartList.get(position).setQuantity(finalQty);
            productList.get(position).setFinalPrice(finalPrice);

            holder.tvQuantity.setText(finalQty + "");
        }
    }
});
holder.btnMinus.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        if (holder.checkBox.isChecked()) {
            int total_harga = productList.get(position).getFinalPrice();
            int currentQty = dataItemCartList.get(position).getQuantity();
            int finalQty = currentQty - 1;
            int finalPrice = finalQty * total_harga;

            if (finalQty < 1) {
                Toast.makeText(context, "Minimal satu item untuk pembelian", Toast.LENGTH_SHORT).show();
            } else {
                dataItemCartList.get(position).setQuantity(finalQty);
                productList.get(position).setFinalPrice(finalPrice);
                listener.setTotalPrice(finalPrice);

                holder.tvQuantity.setText(finalQty + "");
            }
        } else {
            int total_harga = productList.get(position).getFinalPrice();
            int currentQty = dataItemCartList.get(position).getQuantity();
            int finalQty = currentQty - 1;
            int finalPrice = finalQty * total_harga;

            if (finalQty < 1) {
                Toast.makeText(context, "Minimal satu item untuk pembelian", Toast.LENGTH_SHORT).show();
            } else {
                dataItemCartList.get(position).setQuantity(finalQty);
                productList.get(position).setFinalPrice(finalPrice);

                holder.tvQuantity.setText(finalQty + "");
            }
        }
    }
});
java android
1个回答
0
投票

您能否添加setTotalPrice()方法的代码段?还请弄清楚在哪里调用totalPriceAll()方法?

© www.soinside.com 2019 - 2024. All rights reserved.