Android Spinner zur Laufzeit mit verschiedenem Inhalt füllen

f4b1

Mitglied
Hallo zusammen,

ich habe in einer Activity drei Spinner:
Diese sollen quasi jeweils eine Kategorie darstellen, und je nachdem was man in der obersten Kategorie wählt, beeinflusst das die Auswahlmöglichkeiten der unteren Kategorien.

In meiner Activity sieht das dann so aus:
Mit dem ersten Spinner wählt man das Zimmer aus um das es sich handelt (Flur, Küche, Wohnzimmer, usw.)
Mit dem zweiten Spinner sollen dann die Geräte ausgewählt werden können, die in diesem Zimmer stehen (Computer, Anlage, oder eben Kaffeemaschine u.s.w.)
Mit dem dritten Spinner dann soll quasi eine Aktion ausgewählt werden, was das gewünschte Gerät machen soll. (z.B. Computer: einschalten/ausschalten, Licht: ein/aus, usw.)

Weiß jemand wie ich das am Besten umsetze? Ich habe jetzt z.B. schon versucht, die einzelnen Auswahlmöglichkeiten als <string-array> in der arrays.xml zu speichern. Im Layout habe ich die Spinner mit jeweils einem <string-array> initialisiert, so dass wenn ich die Activity zum ersten Mal aufrufe, schon richtige Werte in den Spinnern stehen.
Nun soll es aber ja möglich sein, dass wenn man im ersten Spinner ein anderes Zimmer auswählt, sich die Spinnereinträge für die Geräte und Aktionen ändert
Ich habe mir das jetzt mal so überlegt, dass für die Spinner jeweils einen setOnItemSelectedListener registriere und je nachdem welche Position im ersten Spinner geklickt wurde, für den darunter liegenden Spinner der Adapter neu gesetzt wird.

Das funktioniert mehr oder weniger, hat jemand für das Problem eine elegantere Lösung? Mir scheint das so ziemlich ungeschickt zu sein...

Vielen Dank für Eure Hilfe!
 

eRaaaa

Top Contributor
Mhm, ich wüsste jetzt nicht was daran verkehrt sein sollte. Ob man da jetzt wirklich ein String-Array per XML benutzen möchte musst du entscheiden und kommt sicher auch auf das Programm drauf an. Wenn der Benutzer neue Zimmer/Geräte etc. hinzufügen soll, wirst du so natürlich nicht weiterkommen, dann könnte man die DB nutzen und dann mit z.B. dem SimpleCursorAdapter anstelle des ArrayAdapters(den du vermutlich benutzt oder? )

Wenn es das tut was du willst und es auch keine größeren Probleme gibt, ist doch alles i.O. ? ;)
 

f4b1

Mitglied
Danke für deine Antwort eRaaaa.

Ich hab noch nicht sonderlich viel Erfahrung mit GUI-Programmierung, und wusste somit nicht was der "Best Practice"Fall für mein Problem ist. Aber wie gesagt, es funktioniert ja eigentlich. :)

Richtig, hab den ArrayAdapter benutzt.

Viele Grüße,
Fabi
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Spinner wird nicht aktualisiert Android & Cross-Platform Mobile Apps 6
O Android Spinner-Array ändern Android & Cross-Platform Mobile Apps 6
T Firestore Daten in Spinner Android & Cross-Platform Mobile Apps 0
C Zugriff auf die Position eines String- bzw Spinner-Arrays Android & Cross-Platform Mobile Apps 1
S Android Style vom Spinner ändern (Dropdown sowie Fontfarbe) Android & Cross-Platform Mobile Apps 1
J android Spinner funktioniert nicht Android & Cross-Platform Mobile Apps 14
B Bitmap Array im Spinner übergeben? Android & Cross-Platform Mobile Apps 28
P Android Probleme mit Spinner Android & Cross-Platform Mobile Apps 3
G Android Spinner dynamisch aus DB SQL Select befüllen Android & Cross-Platform Mobile Apps 10
N Android spinner.item index als integer ? Android & Cross-Platform Mobile Apps 10
L Android Problem mit "spinner" Android & Cross-Platform Mobile Apps 10
F Android Spinner mit Ids Android & Cross-Platform Mobile Apps 4
F Android Fehler in Spinner Android & Cross-Platform Mobile Apps 3
W Zur Laufzeit erstelltes MenuItem an eine View binden Android & Cross-Platform Mobile Apps 1
S Android Absoluter Neuling: EditText zur Laufzeit verändern bzw. über Button Android & Cross-Platform Mobile Apps 2
G Android zur Laufzeit den Text im Menü ändern Android & Cross-Platform Mobile Apps 3
E Android View zur Laufzeit hinzufügen Android & Cross-Platform Mobile Apps 4

Ähnliche Java Themen

Neue Themen


Oben