Как связать ключ и значение hashmap с представлением переработчика? - PullRequest
0 голосов
/ 21 мая 2019

Я использую хэш-карту для сбора товаров, добавленных в корзину.Таким образом, ключ - это выбранный элемент, а значение - это количество.

Используя интерфейс, я могу отправить свою хэш-карту в адаптер для просмотра корзины, но я не знаю, как извлечь ключ и значение, чтобы показать элементи количество соответственно.

Я попытался преобразовать хэш-карту в массив

for (Object name: selectionItemsHashMap.keySet()){
            String key = (String) name;
            int value = (int) selectionItemsHashMap.get(name);
            Log.d(TAG, "converting string menu item name:" + key);
            Log.d(TAG, "converting int menu item quantity:" + value);
            SelectionItem selectionItem = new SelectionItem( key, value);
            selectionItemArrayList.add(selectionItem);
        }

Но это не работает.Я получаю что-то вроде этого:

Элемент 1: Кол-во 1 Элемент 1: Кол-во 2 Элемент 1: Кол-во 3

вместо Элемента 1: Кол-во 3

Вот мойonClick из раздела магазина:

int position = getAdapterPosition();
                    String itemNameCheck = menuItemArrayList.get(position).getMenuItemName();
                    if (selectionItemsHashMap != null && selectionItemsHashMap.containsKey(itemNameCheck)) {
                        int currentQuantity = selectionItemsHashMap.get(itemNameCheck);
                        currentQuantity++;
                        selectionItemsHashMap.put(itemNameCheck,currentQuantity);

                    } else {
                        selectionItemsHashMap.put(menuItemArrayList.get(position).getMenuItemName(), 1);

                    }
                    totalAmount += Integer.parseInt(tvMenuItemPrice.getText().toString());
                    amountAddListener.onAmountAdd(totalAmount, selectionItemsHashMap);

И мой onBindViewHolder:

@Override
    public void onBindViewHolder(@NonNull ViewHolder viewHolder, int position) {
        viewHolder.tvSelectItem.setText("how do I get my hashmap key here?");
        String quantity = Integer.toString("how do I get my hashmap value for the above key here?");
        viewHolder.tvDishQuantity.setText(quantity);
    }

1 Ответ

0 голосов
/ 22 мая 2019

Я переместил данные с карты в массив, используя оператор foreach.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...