ich sitze grade vor einem kleinen Problem mit den Android-ListView's. Und zwar habe ich einen einfachen ListView mit Daten gefüllt (einfache Strings). Die Frage ist jetzt, ob man zu dem jeweiligen Listenelement noch eine ID hinterlegen kann bzw. ein eigenes Objekt mit dazugehörigen Daten?
Ich nehme an Du willst auf einen Eintrag klicken und dann zusätzliche Informationen anzeigen?!
Das sollte mit ner Liste von Objekten (eigene Klasse) und ner for-Schleife nicht zu schwer sein.
Dann kannst du über getSelectedItem (oder Index oder so ähnlich, möchte jetzt nicht suchen) den angeklickten Eintrag auslesen und dann eben das Objekt anhand des Index aus der Liste auslesen.
Nein, also ich erkläre besser mal genau was ich machen will:
Ich habe eine Liste mit Straßennamen, die ich im ListView anzeige. Zusätzlich dazu habe ich zu jeder Straße auch Koordinaten. Wenn man jetzt auf den Eintrag klickt, soll sich die google-maps-Karte zu diesen Koordinaten bewegen (wie das funktioniert weiß ich). Nur weiß ich jetzt irgendiwe nicht, wie ich die Koordinaten da hinterlegt und bekomme? Mitanzeigen möchte ich sie nämlich nicht.
Weiß jetzt aber auch nicht genau ob du genau das in deinem obigen Beitrag beschrieben hast^^
Solltest du einen "clickListener" benötigen versuch folgendes.
Java:
ListView lv =(ListView) findViewById (R.id.listView1);//Anpassen mit deinem ListView!
lv.setOnItemClickListener (newOnItemClickListener(){publicvoid onItemClick (AdapterView<?> arg0,View v,int pos,long id){//Hier kommt der Code rein, um die Klicks zu verarbeiten}});
[EDIT]
Deine Straßennamen sollten in einer ArrayList (Oder ähnlichem stehen).
Dann kannst du mittels "pos" den Inhalt auslesen (Dein Straßenobjekt).
Also ca. so:
Java:
//Pseudocode!ArrayList al =newArrayList();
al.get(pos);
der OnItemClick-Listener liefert dir dann den Index des angeklickten Elements zurück und mit getItem(int index) des Adapters kannst du auf das Objekt zugreifen.
Okay, also den OnItemClick-Listener habe ich schon implementiert und das funktioniert auch super, aber mit getItem() bekomme ich doch nur den String zurück, der in der Liste angezeigt wird, oder nicht?
Danke schonmal für eure Antworten bis jetzt
Edit1:
[EDIT]
Ja, mein Straßennamen stehen in einer ArrayList, aber wie bekomme ich die dazugehörigen Koordinaten mit?
Ist es dann vielleicht möglich das gesamte Objekt in den ListView zu legen, z.B. mit einer ArrayList<Strasse> und nur den Straßenname im ListView anzuzeigen? Denn dann würde ich ja mit der getItem() das ganze Objekt Straße bekommen oder?
[/EDIT]
Edit2:
[EDIT]
Okay habe es geschafft wies in meinem ersten edit steht. Einfach das Objekt in die ArraList schmeisen. Mithilfe der toString-Methode wird dann der richtige Text im ListView angezeigt.
Also man braucht:
Kreativer Umgang mit dem Problem. Gar nicht blöd gelöst.
Falls du einmal komplexere Daten darstellen will, vergiss nicht, dass du die Adapter auch selbst programmieren kannst in dem du von BaseAdapter ableitest. Dann musst du in getView noch den Code schreiben der eine Zelle zurückliefert die beliebig komplex sein kann.