复制密钥时,我陷入了这个哈希图问题。(安卓)
最初我有一个类似的 xml 文件
<many_people>
<people>
<id>1</id>
<name>Johnson</name>
<tel_num>12345678</tel_num>
</people>
.
.
.
</many_people>
所以我用hashmap创建了arraylist来存储整个xml
for (int i = 0; i < nl.getLength(); i++) {
map = new HashMap<String, String>();
Element e = (Element) nl.item(i);
map.put(KEY_ID, parser.getValue(e, KEY_ID));
map.put(KEY_NAME, parser.getValue(e, KEY_NAME));
map.put(KEY_TELNUM, parser.getValue(e, KEY_TELNUM));
// adding HashList to ArrayList
peopleList.add(map);
}
我使用 onItemClickListener 来捕获来自 AutoCompleteTextView 的输入,以便我可以将输入与 xml 进行比较。peopleList 稍后将在 listView 中使用。
例如:输入 - Johnson 与 比较,如果找到,那么我的列表视图将显示 Johnson 的姓名和联系人。问题就在这里,如果我有 2 个约翰逊,listView 只会读取我在 xml 中的第一个约翰逊。我不知道如何将输入与 xml 进行比较。下面是我的代码:
for (HashMap<String, String> map : peopleList) {
if (input.equals(map.get(KEY_NAME))) {
// At here I created another hashmap with copying the value
map2.put(KEY_ID, map.get(KEY_ID));
map2.put(KEY_NAME, map.get(KEY_NAME));
map2.put(KEY_NAME, map.get(KEY_TELNUM));
peopleList2.add(map2);
}
}
我成功地在我的 listView 中显示了第一个数据,但第二个和第三个数据(与 Johnson 同名)失败了。我不确定这是否可行。