Я использую хэш-карту для сбора товаров, добавленных в корзину.Таким образом, ключ - это выбранный элемент, а значение - это количество.
Используя интерфейс, я могу отправить свою хэш-карту в адаптер для просмотра корзины, но я не знаю, как извлечь ключ и значение, чтобы показать элементи количество соответственно.
Я попытался преобразовать хэш-карту в массив
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);
}