Calculer et afficher la somme des produits dans un panier

Fermé
potawas Messages postés 1 Date d'inscription lundi 17 décembre 2018 Statut Membre Dernière intervention 17 décembre 2018 - Modifié le 17 déc. 2018 à 07:46
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 17 déc. 2018 à 07:53
Bonjour,

j'essaye de calculer la somme des produits de mon panier grâce à la variable "subTotal", mais il y a quelque chose qui ne va pas dans mon code :


public class CartAdapter extends RecyclerView.Adapter<CartAdapter.CartViewHolder>
{

Context context ;
 private List<Cart> cartList;
private double price;


public CartAdapter(Context context, List<Cart> cartList) {
    this.context = context;
    this.cartList = cartList;


}



@NonNull
@Override
public CartViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View itemView = LayoutInflater.from(context).inflate(R.layout.cart_item_layout, parent, false);
 //   CartViewHolder viewHolder = new CartViewHolder(itemView, mData);
    return new CartViewHolder(itemView);
}

@Override
public void onBindViewHolder(@NonNull CartViewHolder holder, final int position) {

   double price = (Double.parseDouble(String.valueOf(cartList.get(position).price)) * Double.parseDouble(cartList.get(position).amount));

    holder.cart_menu_amount.setText(new StringBuilder(cartList.get(position).amount).append(" x"));
    holder.menu_name.setText(cartList.get(position).name);
    // holder.menu_price.setText((new StringBuilder(String.valueOf(cartList.get(position).price))));
    holder.menu_price.setText(new StringBuilder(String.valueOf(price)).append(" €"));

    double subTotal = 0;
       subTotal += (Double.parseDouble(String.valueOf(cartList.get(position).price)) * Double.parseDouble(cartList.get(position).amount));

    holder.total_price_cart.setText((int) subTotal);
}



@Override
public int getItemCount() {
    return cartList.size();
}

public class CartViewHolder extends RecyclerView.ViewHolder {


    TextView menu_name;
    TextView menu_price;
    TextView cart_menu_amount;
    TextView total_price_cart;

    public CartViewHolder(View itemView) {
        super(itemView);

        total_price_cart = (TextView)itemView.findViewById(R.id.total_price_cart);
        menu_name = (TextView)itemView.findViewById(R.id.cart_name);
        menu_price= (TextView)itemView.findViewById(R.id.cart_price);
        cart_menu_amount= (TextView) itemView.findViewById(R.id.cart_menu_amount);
    }
}
}
A voir également:

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
17 déc. 2018 à 07:53
Bonjour,

Avec ton code comme ça :
double subTotal = 0;
subTotal += (Double.parseDouble(String.valueOf(cartList.get(position).price)) * Double.parseDouble(cartList.get(position).amount));
holder.total_price_cart.setText((int) subTotal); 

Tu réinitialises subTotal à chaque fois et tu ne fais la somme que d'une seule valeur, il n'y a pas d'accumulation.
Ça revient exactement au même que ceci :
holder.total_price_cart.setText((int) (Double.parseDouble(String.valueOf(cartList.get(position).price)) * Double.parseDouble(cartList.get(position).amount)));

Après je n'ai pas forcément tout bien compris dans ton code, c'est de la programmation Android ?
0