ExpandableListView - eindeutige ID vom Child-Eintrag?

  • Antworten:3
Oliver Megerle
  • Forum-Beiträge: 6

27.02.2016, 11:30:14 via Website

Hallo Leute,

ich hoffe jemand kann mir einen Tipp geben.

Ich fülle eine ExpandableListView mit Daten aus meiner Datenbank.
Header aus einem Table und Child aus einem anderen Table.
Dann arbeite ich weiter mit dem Rückgabewert nach dem Klick auf das Child.

Nun bin ich aber darüber gestolpert, dass mein Inhalt des Childs die gleiche Bezeichnung haben kann.
D.h. die Bezeichnung ist nicht eindeutig und kann somit nicht für die weitere Abfrage in der Datenbank verwendet werden.

In dem Table habe ich natürlich eine eindeutige ID - aber die möchte ich verständlicherweise ja nicht im Elv anzeigen.
Die Option, die Childeinträge beim Anlegen in der Tabelle als eindeutig zu bestimmen gefällt mir auch nicht für meinen Zweck...

Nur mal zum Verdeutlichen:

Kunde Maier

  • Ball
  • Zeitung
  • Handschuh

Kunde Müller

  • Apfel
  • Zeitung
  • Stift

In dem Fall habe ich auf den Klick auf "Zeitung" keinen eindeutigen Wert.
Den "Kunden" zur Hilfe nehmen fällt auch aus, da zwar im Kunden-table eine eindeutige ID vergeben ist aber ich ebenfalls noch keine Möglichkeit gefunden habe, diese ID mit dem Header zu verbinden.

Ich hoffe, ich habe mein Problem halbwegs verständlich erklärt und jemand hat einen Tipp oder Link hierzu.
Die Anleitungen, die ich gefunden habe, behandeln allesamt statische und eindeutige Einträge im Child...
Danke im Voraus und viele Grüße,
Oliver

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

27.02.2016, 12:27:21 via Website

Hallo Oliver!

Ich weiß ja nicht wie deine Programmstruktur aussieht, aber ich würde da mit Objektorientierung arbeiten und damit hätte sich das erledigt.

Du hast ein Kundenobjekt welches halt ein Array/bzw. ArrayList von den Childs hat.

Jedes Child ist wieder ein Objekt.
Dann baust du das Child Objekt so auf dass es eine Property ID und einen Text und was weiss ich noch hat.

Damit hast du die ID für DB Abfragen immer dabei.
Wichtig ist, dass du dir halt den weg speicherst den du gegangen bist damit du immer weißt auf welchen Kunden du dich beziehst.
Z.b. du willst von Kunde Müller das Child Objekt Zeitung haben, dann merkst du dir den Weg Kunde Müller (index1) und Child Zeitung (index 1).
Damit hast du immer die aktuelle Orientierung im "Baum" und somit auch die gegenseitige Beziehung.

Du musst halt jetzt schauen, dass du die Daten aus deiner DB in diese Objekstruktur bekommst und dann wäre das erledigt ;)

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Oliver Megerle
  • Forum-Beiträge: 6

27.02.2016, 17:41:05 via Website

Hi Pascal,

ja - das habe ich befürchtet :-(
Wann kann ich zu Dir kommen, damit Du mir das mal zeigst? ;-)

Habe gehofft, ich kann da einfach irgendwas im Hintergrund mitschleifen ohne meinen Bestand wieder über Bord zu werfen.
z.B. im Hashmap vom Child o.ä. - aber das scheint nicht zu funktionieren.
Dann muss ich da mal ran.
Falls irgendjemand ein Link hat, wo sowas gemacht wird, wäre super.
Bin nämlich noch nicht so fit und mir hilft es sehr, wenn ich mal ein Anhaltspunkt habe - bisher habe ich leider noch nichts gefunden.
Bis dann und Gruß,
Oliver

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

27.02.2016, 17:44:32 via Website

Dann drücke ich dir die Daumen dass du es schnell hinbekommst ;)
Du kannst das natürlich in einen bisherigen stand auch irgendwie reinbekommen, aber das ist dann eher eine Pfuscherei als irgendwas richtig zu machen, deswegen ist neu machen der bessere Weg :)

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten