如何将哈希映射键和值绑定到回收者视图?

时间:2019-05-21 20:37:24

标签: android-recyclerview hashmap

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

使用接口我可以将哈希图发送到购物车recyclerview的适配器,但是我不知道如何提取键和值以分别显示项目和数量。

我尝试将哈希图转换为数组

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 :(得分:0)

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