Как отобразить только определенные записи (например, Избранное) из Arraylist of Hashmaps? - PullRequest
0 голосов
/ 25 марта 2012

Я определил ArrayList в своем основном классе, где я загружаю данные из XML-канала и создаю различные вкладки с различными действиями:

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"));
  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);

Где я застрял, так это ...

У меня есть еще одна вкладка «Избранное», где в моей активности Favourite я хотел бы отобразить ListView только тех записей в «mylist», для которых «любимое» состояние - ИСТИНА.

Другими словами, отображать подмножество mylist, основываясь на определенных условиях каждой записи в списке.

Возможно ли это? Я пробовал клонировать, повторять и кто что знает, но я не смог понять это ... любые предложения (с некоторыми небольшими примерами) были бы действительно признательны!

Спасибо!

1 Ответ

0 голосов
/ 25 марта 2012

Если я правильно понял ваш вопрос, вы можете сделать следующее:

Итерировать по вашему ArrayList, для каждого HashMap объекта итерировать по своему keys, как это, чтобы соответствовать Избранным записям в Map:

for (Map map : myList) {
    for (String key : map.keySet()) {
         If("favourite".equals(key)) {
              // ...
          }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...