如何将hashmap密钥和价值绑定到回收器视图



我正在使用hashmap收集添加到购物车中的项目。因此,关键是所选项目,值是数量。

使用接口我可以将我的hashmap发送到CART RECYCLEVIEW的适配器,但我不知道如何提取键和值分别显示项目和数量。

我尝试将哈希姆普转换为数组

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

这是我在商店部分的on Click:

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);
    }

我使用foreach语句将数据从地图移至数组。

最新更新