您好我正在寻找有关如何在哈希映射中添加2个单独的edittext值的建议。
基本上,我在一个edittext中有一个项目的名称,以及下一个项目的价格。 我想点击添加,并将两个值存储在一起。
我的目标是将这些细节添加到微调器中,当它被选中时我可以显示与它相关的值。
我只是想找个方向,如果可能的话,我可以向一个微调器添加一个哈希映射条目但是我一次添加两个连接的值时遇到了麻烦
答案 0 :(得分:3)
为什么不创建一个新类Item,在其中将两个属性放在项目名称和价格上,然后创建此类的哈希映射。 你的课应该是这样的:
public class Item{
private String itemName;
private String itemPrice;//or put an integer instead.
public Item (String n, String p){
this.itemName = n;
this.itemPrice =p;
}
答案 1 :(得分:0)
EditText itemNameInput, itemPriceInput;
HashMap<Integer, String> inputMap = new HashMap<>();
public void onAddClicked() {
String itemName = itemNameInput.getText().toString();
String itemPrice = itemPriceInput.getText().toString();
inputMap.put(itemNameInput.getId(), itemName);
inputMap.put(itemPriceInput.getId(), itemPrice);
// iterate over hashmap -> arrayadapter backing spinner
}
但为什么你需要一个hashmap?您希望能够在单击微调器后查找EditTexts吗?你可能最好只是连接名称和价格(String spinnerItemOne = itemName + " " + itemPrice;
)然后将它提供给你的微调器的数组适配器。例如,如果需要将焦点发送回itemNameInput,则可以使用散列映射。我刚刚使用了id,因为我不知道你要做什么:你可以使用实际的编辑文本作为键(只是不要泄漏它们)。最后一点,如果你只做这一对,那就很重要了,但你可以用SparseArray
而不是hashmap来提高效率。