我在哪里,我从XML提要加载数据,并与不同的活动创造各种选项卡我的主类中定义一个ArrayList如何在另一个类中访问(迭代?)ArrayList/Hashmap?在这里我把地图进入包含HashMap的ArrayList中的</p> <pre><code>static ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>(); </code></pre> <p>例:
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"));
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);
我的第二个选项卡是一个MapView的,我能够成功切换标签,显示标签布局中的地图和平移&变焦等
哪里需要帮助是理解如何访问“LAT '和'long'字符串在主类的“mylist”ArrayList/Hashmap中(注意:)我在主类中声明了ArrayList/Hashmap,然后在所有活动中共享它,因为它是一个相当大的XML提要我不想重新加载数据或在内存中有太多对象)。
我的目标是将这些纬度/长度坐标转换为地理坐标点并使用地图叠加显示;我已经能够使用硬编码到我的Map活动类中的固定GeoPoints来完成此操作。然而,正如我上面写的,我现在需要替换这些'固定'的GeoPoints,而是使用“mylist”ArrayList/Hashmap的内容。
我是新的(< 1个月的经验)编程Java/Android,所以我希望这一切都有道理?我希望有人能够解释/举例说明我如何访问数据......我尝试过实施各种措施,例如'迭代',但它还没有工作。
乔鲁你好,是的,我已经宣布“MYLIST” ArrayList的一个静态变量如你所说 - 而不是通过一个Intent传递。有了上面的建议,我现在已经能够成功遍历ArrayList并在Logcat中的hashmap对象中显示所有数据。但是,检索这些值后,我仍不清楚如何访问特定条目,如id,lat或long? (对不起,如果我的问题是非常基本的,但正如我所解释的,我在这方面很新手) – Kevin 2012-01-06 00:11:31
再次查看你的代码,你可能想要定义一个小类,并使用它的列表,而不是使用hashmap。一个会有id,lat和long成员的类。 http://kkrit.com/n/Java_1.6_Tutorial/java/javaOO/classes.html这是一个如何声明一个类的例子。例如,要像现在那样访问lat,您需要执行map.get(“lat”);. – Joru 2012-01-06 09:15:01