Spinner oder anderer Lösungsweg?

  • 2 Antworten
  • Neuester Beitrag
Diskutiere Spinner oder anderer Lösungsweg? im Android App Entwicklung im Bereich Betriebssysteme & Apps.
K

Kellrkind

Neues Mitglied
Hey Leute :)

ich blick grad wieder mal net durch und hoffe ihr könnt mir weiterhelfen :smile:

Damit ihr meinen Lösungsweg nachvollziehen könnt erstmal der Hintergrund:

In meiner App gibt es mehrere Klubhäuser in verschiedenen Orten (Ein Ort kann 1 oder mehrere Klubs haben).

Nun soll der Nutzer via Checkboxen sich einige auswählen können.


Mein Gedanke war nun Folgender:

Ich erstelle mehrere Spinner welche die Ortsnamen tragen und setze dahinter eine Checkbox. Wenn der Spinner gedrückt wird erscheinen in der Item-Liste die Klubs aus dieser Stadt. Wenn die Checkbox hinter der Stadt ausgewählt wird, geht es mit diesen Elementen in der nächsten Activity weiter.

Soweit so gut, nur hab ich bisher zwei Lösungswege verfolgt, aber keiner hat richtig funktioniert.

1x konnte ich so viele Spinner erzeugen wie ich Städte habe aber die Items nicht verändern...

Das andere mal konnte ich die Items festlegen, allerdings die Anzahl der Spinner nicht varrieren, komischerweise hört die "Spinner-Produktion" bei 5 auf...

Zudem fiel mir dann auf, dass wenn ich ein Element des Spinners gedrückt hatte, dieses Element dann als Spinnertext erscheint.

Jetzt meine Frage:
wenn ich das zu Anfang beschriebene Szenario umsetzen will,
bin ich mit den Spinnern auf dem richtigen Weg oder muss ich umdenken?
Wenn umdenken, wie könnte ich das ganze realisieren?

Der Knackpunkt ist dass ich die ganzen Informationen gerne in einer Städteübersicht haben würde wo, wenn man draufdrückt nur die Klubs eben jener Stadt zu sehen sind.
Und das für jede Stadt so.

Hoffe Ihr könnt meinen Gedanken folgen ^^

Viele Grüße
Kellrkind
 
Max1809

Max1809

Fortgeschrittenes Mitglied
Hi,

ich schätze, für Dein Anliegen wäre die "Expandable Listview" eine gute Option.

Hier ein Tutorial:
Android Expandable List View Tutorial

Hier kannst Du dann als übergeordneter Knoten die Städte laden und wenn man einen Knoten aufklappt, die einzelnen Klubs anzeigen. :smile:
 
K

Kellrkind

Neues Mitglied
Hallo Max :)

Danke für den Hinweis,

mit "Expandable Listview" komm ich ein gutes Stück weiter als mit den Spinnern ;-)

Ist genau das was ich suche.
Nur häng ich grad schon wieder :mad2:

Habe folgendes Problem:
Die übergeordneten Knoten zeigen mir auch alle Städte an, so weit so gut.
Nur wenn es um die "Childs" geht hakt es bei mir gewaltig.

Ich versuche die Knoten und die Childs so zu erstellen:

Code:
private void prepareListData(String[] Orte, String[][] Namen, String[] Vergleich) {
		listDataHeader = new ArrayList<String>();
		listDataChild = new HashMap<String, List<String>>();
		List<String> namen = new ArrayList<String>();

		// Adding child data
		for (int i = 0; i < Orte.length; i++) {
			listDataHeader.add(Orte[i]);

			// Adding child data
			for (int j = 0; j < Vergleich.length; j++) {
				if (Orte[i].equals(Namen[2][j])) {
					namen.add(Namen[1][j]);
				}
			}
			listDataChild.put(listDataHeader.get(i), namen); // Header, Child											// data
		}
		
	}
Bei dem listDataHeader.add klappt alles wunderbar.
Nur wenn ich das listDataChild.put mache, schreibt es mir die Klubs nicht zu dem Knotenpunkt an der Stelle (i) sondern alle Klubs werden bei allen Knotenpunkten ausgegeben.

Sprich egal wieviele Klubs ich habe und dementsprechen die Liste "namen" füllen lasse, am Ende stehen alle bei Orten.

Hab auch schon versucht hinter listDataChild.put wo ich dachte jetzt weißt es dem Knotenpunkt die Childs zu namen.clear() zu setzen, aber am Ende stand gar nichts in den Knotenpunkten...

Hoffe ich konnte mein Problem einigermaßen erläutern :)

Danke und Grüße
Kellrkind

Der ursprüngliche Beitrag von 13:44 Uhr wurde um 14:18 Uhr ergänzt:

Ok Leute, habs selber hingekriegt :smile::smile:

Statt in der Methode prepareListData die Daten 1x anzufertigen wie im Post oben, rufe ich nun für jeden Ort mit einer for-schleife die Methode auf

Code:
// preparing list data
		for (int i = 0; i < ENTRIES.length; i++) {
			prepareListData(ENTRIES[i], Buden, Anzahl, i);
		}
Funktioniert! :) :) :)

Eine Frage hab ich noch,
hinter jedem TextView im Knotenpunkt (also hinter jedem Child) sitzt eine Checkbox.

Wie kann ich der Checkbox eine ID zuweisen und gegen Ende mit einem Klick auf einen button alle Checkboxen in der kompletten Expandable List auf Checked oder nicht Checked überprüfen?

hat da jemand einen Ansatz für mich? :)

Danke und Grüße
Kellrkind