W
Wolverine566561
Gast
Hallo,
ich habe folgendes Problem: Ich habe zwei Spinner in einer Activity. Der eine Wird mit Herstellernamen aus einer Datenbank initialisiert. Funktioniert soweit wunderbar.
Der zweite Spinner soll entsprechend der Auswahl des ersten Spinners Produkte des Herstellers anzeigen. Und an dieser Stelle scheitert es. Es wird keine Exception geworfen. Vielmehr ist es so, dass die Methode onItemSelected offenbar nicht tut, was sie soll. Noch wahrscheinlicher ist, dass ich einen Denkfehler mache, den ich nicht sehe
Hier mal der Code:
Der Code für den zweiten Spinner sieht nahezu identisch aus (Den einzigen Unterschied hab ich in einem Blockkommentar gekennzeichnet):
Abschließend noch der Code für die onItemSelected():
Wie gesagt: Exception wird keine geworfen. Ich habe bisher nur feststellen können (mit Log.d), dass die Anweisungen der onItemSelected() gar nicht erst ausgeführt werden
Es sei erwähnt, dass ich erstmalig mit einem Spinner arbeite.
Grüße
Der ursprüngliche Beitrag von 18:06 Uhr wurde um 18:57 Uhr ergänzt:
Ich antworte mir mal ganz schnell selbst und lasse diesen Beitrag als Mahnmal für die Nachwelt stehen:
Es ist erstaunlich wie alles funktioniert, wenn man es richtig macht...
Der Listener konnte gar nicht arbeiten, weil ich ihn NIE dazu veranlasst habe :blushing:
Kaum war das erledigt schon hat es soweit ganz gut geklappt (waren so noch ein paar Kleinigkeiten, aber die haben sich recht schnell gefunden)
ich habe folgendes Problem: Ich habe zwei Spinner in einer Activity. Der eine Wird mit Herstellernamen aus einer Datenbank initialisiert. Funktioniert soweit wunderbar.
Der zweite Spinner soll entsprechend der Auswahl des ersten Spinners Produkte des Herstellers anzeigen. Und an dieser Stelle scheitert es. Es wird keine Exception geworfen. Vielmehr ist es so, dass die Methode onItemSelected offenbar nicht tut, was sie soll. Noch wahrscheinlicher ist, dass ich einen Denkfehler mache, den ich nicht sehe

Hier mal der Code:
Code:
private void initManufactorsSpinner()
{
// ArrayList mit den Manufactor-Namen
ArrayList<String> spinnerItems = new ArrayList<String>();
DatabaseHelper db = new DatabaseHelper(context);
spinnerItems = db.getManufactorsFromTableDarts();
// Array mit Größe = ArrayList-Länge
String[] itemArray = new String[spinnerItems.size()];
for(int i=0; i <= itemArray.length - 1; i++)
{
itemArray[i] = spinnerItems.get(i);
}
manufactorSpinner = (Spinner) findViewById(R.id.spinner_darts_manufactors);
ArrayAdapter adapter = new ArrayAdapter(context, android.R.layout.simple_spinner_dropdown_item, itemArray);
manufactorSpinner.setAdapter(adapter);
}
Der Code für den zweiten Spinner sieht nahezu identisch aus (Den einzigen Unterschied hab ich in einem Blockkommentar gekennzeichnet):
Code:
private void initModelSpinner()
{
// ArrayList mit den Modell-Namen
ArrayList<String> spinnerItems = new ArrayList<String>();
DatabaseHelper db = new DatabaseHelper(context);
/* HIER IST DER UNTERSCHIED!!!!
* Es wird der Datenbank das ausgewähle Item des ersten Spinners
* als String mitgegeben, damit nur die entsprechenden DB-Einträge
* ausgewählt werden.
*/
spinnerItems = db.getModelsFromTableDarts(selectedManufactorItem);
String[] itemArray = new String[spinnerItems.size()];
for(int i=0; i<= itemArray.length - 1; i++)
{
itemArray[i] = spinnerItems.get(i);
}
modelSpinner = (Spinner) findViewById(R.id.spinner_darts_models);
ArrayAdapter adapter = new ArrayAdapter(context, android.R.layout.simple_spinner_dropdown_item, itemArray);
modelSpinner.setAdapter(adapter);
}
Abschließend noch der Code für die onItemSelected():
Code:
public void addListenerOnManufactorSpinnerItemSelection()
{
manufactorSpinner = (Spinner) findViewById(R.id.spinner_darts_manufactors);
manufactorSpinner.setOnItemSelectedListener(new OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id)
{
selectedManufactorItem = parent.getItemAtPosition(pos).toString();
initModelSpinner();
}
@Override
public void onNothingSelected(AdapterView<?> parent){}
});
}
Wie gesagt: Exception wird keine geworfen. Ich habe bisher nur feststellen können (mit Log.d), dass die Anweisungen der onItemSelected() gar nicht erst ausgeführt werden

Es sei erwähnt, dass ich erstmalig mit einem Spinner arbeite.
Grüße
Der ursprüngliche Beitrag von 18:06 Uhr wurde um 18:57 Uhr ergänzt:
Ich antworte mir mal ganz schnell selbst und lasse diesen Beitrag als Mahnmal für die Nachwelt stehen:
Es ist erstaunlich wie alles funktioniert, wenn man es richtig macht...
Der Listener konnte gar nicht arbeiten, weil ich ihn NIE dazu veranlasst habe :blushing:
Kaum war das erledigt schon hat es soweit ganz gut geklappt (waren so noch ein paar Kleinigkeiten, aber die haben sich recht schnell gefunden)