我有一个全局定义的ArrayList为ArrayList<Map<String, String>> mContactList;
。迭代哈希映射ArrayList的难度为
现在,在方法之一,我定义一个HashMap是这样的:
Map<String, String> NamePhoneType = new HashMap<String, String>();
NamePhoneType.put("Name", contactName); //contactName is returned from a query
NamePhoneType.put("Phone", phoneNumber); //phoneNumber is returned from a query
mContactList.add(NamePhoneType);
所以mContactList
现在看起来像[{Name=Abc, Phone=123}, {Name=def, Phone=456}...]
现在,当我尝试使用以下在mContactList
迭代,根据索引,我始终将密钥的值设为'Phone'
,值为'123'
或'456'
。
public void onItemClick(AdapterView<?> av, View v, int index,long arg) {
Map<String, String> map = (Map<String, String>) av.getItemAtPosition(index);
Iterator<String> myVeryOwnIterator = map.keySet().iterator();
while (myVeryOwnIterator.hasNext()) {
String key = (String) myVeryOwnIterator.next();
String value = (String) map.get(key);
getNumber.setText(value);
}
}
});
我想要的Name
和在2个单独的字符串的选择的索引的Phone
。我怎么做?
它真的好像你应该创建一个叫'ContactInfo'的* Name *,它具有'Name'和'Phone'成员。为什么在使模型具体化时使用任意键/值存储? – dlev 2012-07-10 21:25:19