ListView mit Objekt-Array Daten füllen

oetzi

oetzi

Fortgeschrittenes Mitglied
11
Nabend zusammen,

ich habe gerade mal beispielweise eine ListView umgesetzt.
Dabei habe ich zunächst zum füllen der Liste ein statisches String-Array benutzt. Das funktioniert soweit auch alles gut, das war aber ja auch nur die Übung für folgendes :)

Was ich eigentlich möchte ist:
- Ein Objekt-Array von einem Server holen (erledigt)
- Die einzelnen Objekte in einer auswählbaren Liste darstellen
- und auf Klick eines Eintrags reagieren

Die Objekte haben vereinfacht gesagt eine ID und eine Beschreibung.

-> Wie kriege ich jetzt eine ListView erstellt, der ich sowohl die ID und die Beschreibung pro Eintrag mitgeben kann?

Beispiel-Liste (ID - Beschreibung):
23 - Hallo
44 - Welt
10 - !
Tippe ich auf "Welt" möchte ich die 44 auswerten können, sprich im Endeffekt wissen, welches Objekt gemeint ist.

Ich hoffe das war jetzt verständlich genug beschrieben :)

Schönen Gruß,
oetzi

PS:
Folgende Lösungsmöglichkeit könnte ich mir selbst vorstellen, finde ich aber ein wenig dreckig:
- nur die Beschreibungen der Objekte in die Liste einfügen
- bei Klick den Index des ausgewählten Strings auswerten
- und das Objekt über den Index in meinem Ursprungsarray suchen
Dabei müsste man dann aufpassen, dass man die Reihenfolge in der Darstellung (z. B. alphabetische Sortierung) nicht verändert, da mir sonst der Index nichts mehr bringt.
Würde ich wie oben beschrieben einfach die konkrete ID des Objektes zurück kriegen, wäre das ganze wesentlich besser überschaubar und weniger fehleranfällig.
 
Hi oetzi,

spontan fiele mir jetzt dazu ein, die beiden werte, also ID und Beschreibung, in ein String [] zu packen. Um dann das String [] wieder zu bekommen musste einen eigenen Adapter für die Liste anlegen und dessen getView() methode überschreiben so das er nen String [] bekommt, aber nur das erste Element (in dem Fall die Beschreibung) als Text ausgibt. so kannst du dann per OnItemClickListener.getItemAtPosition auf deine ID zugreifen ... ist zwar auf keinen fall die besste variante aber so geht´s auf jeden Fall. :)

MfG nijoX
 
Hi nijox,

danke für die Beschreibung dieser Möglichkeit.
Allerdings hast du ja schon selbst gesagt, dass das jetzt nicht wirklich sauberer ist, wie meine Frickellösung :)

Mal gucken, ob noch jemand eine grandiose Idee hat ;-)
 
anstatt eines String[] kannst das Object was du bekommt natürlich auch Parcelable machen ... das wäre vermutlich die gescheiteste Lösung ;)

(kam vorhin nur net mehr auf den namen :D)

MfG nijoX
 
Hi Unicate,

na da hat der Kollege und ich ja fast zeitgleich die selbe Frage.
Danke! Ich werde mir das sofort mal angucken

Gruß,
oetzi
 

Ähnliche Themen

R
Antworten
6
Aufrufe
1.014
swa00
swa00
A
Antworten
10
Aufrufe
1.021
swa00
swa00
B
Antworten
4
Aufrufe
491
bb321
B
Zurück
Oben Unten