我在我的主类中定义了一个ArrayList,我从XML feed中加载数据并创建包含不同活动的各种标签:
static ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
我将地图条目放入HashMaps的ArrayList中的示例:
for (int i = 0; i < 10; i++) {
HashMap<String, String> map = new HashMap<String, String>();
Element e = (Element)nodes.item(i);
map.put("id", XMLfunctions.getValue(e, "id"));
map.put("lat", "Lat: " + XMLfunctions.getValue(e, "lat"));
map.put("long", "Long: " + XMLfunctions.getValue(e, "long"));
map.put("favourite", [lookup of true/false favourite status and insert here]);
mylist.add(map);
}
第一个选项卡是ListViewActivity,我可以通过引用主类中的ArrayList成功地创建列表:class.mylist通过列表适配器:
ListAdapter adapter = new SimpleAdapter(
ListViewActivity.this,
main.mylist, R.layout.list,
new String[] { "id", "lat", "long" },
new int[] { R.id.item_id, R.id.item_lat, R.id.item_long });
setListAdapter(adapter);
我遇到的情况如下......
我有另一个标签'收藏夹',在我的FavouriteActivity中,我想显示一个Listview,只显示“mylist”中“最喜欢”状态为TRUE的那些条目。
换句话说,根据列表中每个条目的特定条件显示mylist的子集。
这可能吗?我已经尝试过克隆,迭代和谁知道什么,但我无法弄明白......任何建议(有一些小例子)都会非常感激!
谢谢!
答案 0 :(得分:0)
如果我理解你的问题你可以这样做:
对ArrayList
进行迭代,对于每个HashMap
对象迭代其keys
,以匹配Map
中的收藏条目:
for (Map map : myList) {
for (String key : map.keySet()) {
If("favourite".equals(key)) {
// ...
}
}
}