2012-03-25 9 views
0

Ich habe eine Arraylist in meiner Hauptklasse definiert, wo ich Daten aus einem XML-Feed bin Laden und verschiedene Registerkarten mit verschiedenen Aktivitäten zu schaffen:Wie nur bestimmte Einträge (z. B. Favoriten) von einem Arraylist von Hashmaps angezeigt werden?

static ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>(); 

Beispiel, wo ich legte eine Karte Eintritt in die Arraylist von 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); 
} 

der erste Reiter ist ein ListViewActivity und ich bin um die Liste zu erstellen durch Bezugnahme auf die Arraylist in der Hauptklasse erfolgreich in der Lage: class.mylist über eine Liste Adapter:

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

Wo ich stecken bin, ist die folgende ...

ich ein anderes Register ‚Favoriten‘, wo in meiner FavouriteActivity würde ich eine Listenansicht der die Einträge in „mylist“ angezeigt werden möchte, für die der Staat ‚Favorit‘ ist wahr.

Mit anderen Worten, eine Teilmenge der Liste basierend auf einer bestimmten Bedingung für jeden Eintrag in der Liste anzeigen.

Ist das möglich? Ich habe versucht zu klonen, zu iterieren und wer weiß was, aber ich bin nicht in der Lage, es herauszufinden ... irgendwelche Vorschläge (mit einigen kleinen Beispielen) würden wirklich geschätzt werden!

Vielen Dank!

Antwort

0

Wenn ich Ihre Frage richtig verstanden können Sie dies tun:

Iterate über Ihre ArrayList, für jedes Objekt HashMap Iterierte über seine keys wie diese Lieblingseinträge in Map entsprechen:

for (Map map : myList) { 
    for (String key : map.keySet()) { 
     If("favourite".equals(key)) { 
          // ... 
      } 
    } 
}