Сумма элементов представления переработчика

#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 на вашей кнопке увеличения или уменьшения элемента и соответствующим образом манипулировать общей суммой.