Hallo
In den geposteten Code und deiner App benutzt du lokale Variablen für die Spinner.
Besser ist es für die Spinner Klassen Variablen zu benutzen und diese in der onCreate zu setzen.
Denn du willst in den Listener „Callback Methode“ darauf zugreifen was aber, weil es lokale Variablen sind nicht geht.
Wenn du nicht weist was lokale und Klassen Variablen sind schlage in den Grundlagen Java nach. Nur learning by doing kommst du nicht weit. Elementare Java Grundlagen solltest du schon haben und Beherrschen.
Zweitens solltest du für alle Spinner nur einen eigenen Listener machen und benutzen.
Ich sage mal default Listener, den du wegen dem Interfase einbinden musst lasse frei. Oder lasse sogar das Interface bei der Klasse weg. "implements OnItemSelectedListener" dann kannst du den default auch löschen.
Auch darfst du nicht den Listener zwei mal setzen.
etwas aus deiner App
spinner3.setOnItemSelectedListener(this); // löschen
spinner3.setOnItemSelectedListener(new OnItemSelectedListener() {
String[] stringBlende = MainActivity.this.getResources().getStringArray(C0694R.array.blende_arrays);
public void onNothingSelected(AdapterView<?> adapterView) { }
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long j) {
.....
die Zeile mit dem „this“ löschen brauchst du nicht.
auch bei den andern löschen.
so du willst also in einen Listener „Callback Methode“ einen anderen Spinner auf einen anderen wert setzen. Da zu brauchst du die variable des Spinners die du nicht hast weil sie lokal sind und nicht global eigentlich gibt es keine echten globalen Variablen bei Java nur Klassen Variablen, die auch in der Klasse global sind.
Das kannst du mit spinner5.setSelectio(pos); machen.
https://stackoverflow.com/ques…sition-in-spinner/8769522
du solltest auch hier den erste Start des listener überspringen so wie bei Spinner3.