我正在使用哈希图来收集添加到购物车中的物品。因此,关键是所选项目,价值是数量。
使用接口我可以将哈希图发送到购物车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);
}
答案 0 :(得分:0)
我使用foreach语句将数据从地图移动到数组。