我正在使用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语句将数据从地图移至数组。