я определил ArrayList в моем главном классе, где я загрузка данных из фида XML и создаю различные вкладки с различными видами деятельности:Как получить доступ (повторить?) ArrayList/Hashmap в другом классе?
static ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
Примером, где я положил запись на карту в ArrayList из HashMaps:
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-канал и я не хотел перезагружать данные или иметь слишком много объектов в памяти).
Моя цель состоит в том, чтобы затем преобразовать эти координаты lat/long в GeoPoints и отобразить их с помощью Map Overlay; Я уже могу это сделать, используя фиксированные GeoPoints, жестко закодированные в моем классе активности карты. Однако, как я уже писал выше, теперь мне нужно заменить эти «фиксированные» GeoPoints и вместо этого использовать содержимое «mylist» ArrayList/Hashmap.
Я новичок (< 1 месяц опыта) для программирования Java/Android, так что я надеюсь, что все это имеет смысл? И я надеюсь, что кто-то сможет объяснить/дать пример того, как я могу получить доступ к данным ... Я пробовал реализовать различные меры, такие как «Iterations», но пока он не работает.
Привет Joru, да я уже объявлен «MyList» ArrayList в качестве статической переменной, как вы предложили - а не пропуская его через Intent. С вашим предложением выше, я теперь смог успешно перебирать через ArrayList и отображать все данные в моих объектах hashmap в Logcat. Однако, получив значения, я все еще не понимаю, как получить доступ к определенной записи, такой как id, lat или long? (Извините, если мой вопрос очень прост, но поскольку я объяснил, что я очень новичок в этом) – Kevin
Еще раз взглянув на ваш код, вы можете определить какой-то небольшой класс и использовать его список вместо использования hashmap. Класс, который будет иметь элементы id, lat и long. http://kkrit.com/n/Java_1.6_Tutorial/java/javaOO/classes.html это пример того, как объявить класс. Чтобы получить доступ к lat, например, как у вас сейчас, вам нужно сделать map.get («lat») ;. – Joru