[英]android recyclerview restoring state in object
該應用程序功能類似於購物車。 用戶可以通過單擊相應的按鈕來添加產品和增加/減少數量。 默認情況下,數量值設置為 1。每當用戶將新產品添加到 recyclerview 時,我都會遇到問題,之前的產品數量也更改為 1。如何避免這種情況? 如何恢復 object 中的狀態(遞增/遞減值)?
@Override
public void onBindViewHolder(@NonNull RVOrderBrdAdapter.RVViewHolder holder, int position) {
//getting the product of the specified position
OrderBrdDataModel product = filteredList.get(position);
//binding the data with the viewholder views
double org_p = product.getBrdprice();
holder.brd_value.setText(String.valueOf(product.getBrdprice()));
holder.brd_product.setText(product.getBrdname());
holder.brd_quantity.setText("1");
holder.brd_increment.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
number = Integer.parseInt(""+holder.brd_quantity.getText().toString());
if(holder.brd_quantity.getText().toString().equals("")){
Toast.makeText(v.getContext(), "Quantity cannot be empty", Toast.LENGTH_SHORT).show();
}else if(number >=9999){
Toast.makeText(v.getContext(), "Quantity cannot be greater than 9999", Toast.LENGTH_SHORT).show();
}else{
number++;
}
holder.brd_quantity.setText(""+number);
double iw = Double.parseDouble(String.format("%.2f",(org_p*number)));
holder.brd_value.setText(String.valueOf (iw));
}
});
holder.brd_decrement.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
number = Integer.parseInt(""+holder.brd_quantity.getText().toString());
if(holder.brd_quantity.getText().toString().equals("")){
Toast.makeText(v.getContext(), "Quantity cannot be empty", Toast.LENGTH_SHORT).show();
}else if(number<=0){
Toast.makeText(v.getContext(), "Quantity cannot be less than 0", Toast.LENGTH_SHORT).show();
number = 0;
}else {
number--;
}
holder.brd_quantity.setText(""+number);
double dw = Double.parseDouble(String.format("%.2f",(org_p*number)));
holder.brd_value.setText(String.valueOf(dw));
}
});
您可以將數量添加到 OrderBrdDataModel 或將 OrderBrdDataModel 包裝在 OrderBrdDataModelWithQuantity 之類的東西中。 在 OnBindViewHolder 中使用此變量的數量並確保更新 brd_increment/decrement 中的數量值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.