簡體   English   中英

android 刷卡免刷新回收站查看物品

[英]android swipe and avoid refreshing recyclerview items

我想計算一次總成本,而不是每次我們刷產品時都重復它

android 刷卡免刷新回收站查看物品

public class CartAdapter extends RecyclerView.Adapter<CartAdapter.ViewHolder> {
Context context;
List<CartModel> cartModels;
float total;
public CartAdapter(Context context, List<CartModel> cartModels) {
    this.context = context;
    this.cartModels = cartModels;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.cart_product_layout, parent, false));
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
    Glide.with(context).load(cartModels.get(position).getProductImg()).into(holder.productImg);
    holder.name.setText(cartModels.get(position).getProductName());
    holder.price.setText(cartModels.get(position).getProductPrice());
    holder.quantity.setText(String.valueOf(cartModels.get(position).getProductQuantity()));

    total += Float.parseFloat(String.valueOf(holder.price.getText()));

    Intent intent = new Intent("MyCart");
    intent.putExtra("total", total);
    LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
}
@Override
public int getItemCount() {
    return cartModels.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
    ImageView productImg;
    TextView name, price, quantity;
    public ViewHolder(@NonNull View itemView) {
        super(itemView);
        productImg = itemView.findViewById(R.id.product_img);
        name = itemView.findViewById(R.id.product_name);
        price = itemView.findViewById(R.id.product_price);
        quantity = itemView.findViewById(R.id.product_quantity);
    }
}

}

刷屏前后圖片顯示在此處輸入圖像描述

您不應該在 OnBindViewHolder() 中進行任何計算。 當視圖被回收時,每次上下滾動時都會調用 function 。 相反,我建議只計算適配器初始化的總數

public CartAdapter(Context context, List<CartModel> cartModels) {
    this.context = context;
    this.cartModels = cartModels;
    for (CartModel model : cartModels) {
        total += model.getProductPrice();
    }
    // Set total textview

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM