#java #android #android-recyclerview
#java #Android #android-recyclerview
Вопрос:
У меня проблема с моей итерацией, я понятия не имею, как это сделать. я хочу получить сумму общей переменной, определенной в держателе представления bind, и отобразить сумму в текстовом поле моей активности. Увеличение и уменьшение функциональности работают отлично.
@Override
public CartAdapter.VH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new VH(layoutInflater.inflate(R.layout.cart_recycler_items, parent, false));
}
@Override
public void onBindViewHolder(@NonNull final CartAdapter.VH holder, int position) {
final MultipleCartWrapper entity = multipleCartWrapperArrayList.get(position);
holder.itemquantity.setText(entity.getQuantity());
holder.itemname.setText(entity.getFood().getName());
holder.itemprice.setText(entity.getFood().getPrice() "");
int quan = Integer.parseInt(holder.itemquantity.getText().toString());
int price = (int) Float.parseFloat(holder.itemprice.getText().toString());
total = String.valueOf(quan*price);
holder.total.setText(total);
holder.plus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int quan = Integer.parseInt(holder.itemquantity.getText().toString());
int price = (int) Float.parseFloat(holder.itemprice.getText().toString());
quan ;
String quantity = String.valueOf(quan);
holder.itemquantity.setText(quantity);
String total = String.valueOf(quan*price);
holder.total.setText(total);
}});
holder.minus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int quan = Integer.parseInt(holder.itemquantity.getText().toString());
int price = (int) Float.parseFloat(holder.itemprice.getText().toString());
if (quan >=1){
quan--;
String quantity = String.valueOf(quan);
holder.itemquantity.setText(quantity);
String total = String.valueOf(quan*price);
holder.total.setText(total);
} }}); }
@Override
public int getItemCount() {
return multipleCartWrapperArrayList.size();
}
Я хочу сделать еще одну вещь: когда я увеличиваю или уменьшаю какой-либо элемент, значение total price должно меняться в текстовом поле total. Пожалуйста, дайте мне решение. Я буду вам очень благодарен.
Комментарии:
1. Это странное место для суммирования данных. Ваш RecyclerView заполняется на основе списка, правильно? Разве вы не можете суммировать все цены в том же месте, где вы извлекаете список?
2. @Gavin Wright прав. И вы можете просто прослушать onClick на вашей кнопке увеличения или уменьшения элемента и соответствующим образом манипулировать общей суммой.