キーをコピーするときに、このハッシュマップの問題で立ち往生しています。(アンドロイド)
最初に、これに似たxmlファイルがありました
<many_people>
<people>
<id>1</id>
<name>Johnson</name>
<tel_num>12345678</tel_num>
</people>
.
.
.
</many_people>
だから私はハッシュマップで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);
}
入力を xml と比較できるように、onItemClickListener を使用して AutoCompleteTextView からの入力をキャプチャしました。peopleList は後で listView で使用されます。
例: 入力 - ジョンソン と比較して、見つかった場合、私のリスト ビューにはジョンソンの名前と連絡先が一緒に表示されます。ここに問題があります。Johnson が 2 つある場合、listView は xml の最初の Johnson のみを読み取ります。入力を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 に最初のデータを表示することに成功しましたが、2 番目と 3 番目のデータ (Johnson と同じ名前) は失敗しました。これがその方法であるかどうかはわかりません。