Spinner reagiert nicht auf spinner.setSelection(index, boolean)

  • Antworten:3
  • OffenNicht stickyBentwortet
  • Forum-Beiträge: 23

17.09.2014, 17:48:00 via Website

Ich noch mal.

Ich habe in einer Activity einen Spinner untergebracht.

in OnCreate() rufe ich unter anderem folgendes auf:

    //Der Spinner werden mit werten aus der DB gefüllt
    DatabaseAdapter dbAdapter = getDbAdapter();
    dbAdapter = DatabaseAdapter.getInstance();
    //getstations sollte ein List<String> zur&uuml;ckliefern
    this.stationAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, dbAdapter.getStations());


    this.stationAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    final Spinner stationSpinner = (Spinner) findViewById(R.id.stationspinner);
    stationSpinner.setAdapter(this.stationAdapter);

    stationSpinner.setOnItemSelectedListener( new OnItemSelectedListener() {

    @Override
    public void onItemSelected(AdapterView<?> arg0, View arg1, int pos, long arg3) {


        stationSpinner.setSelection(pos, true);

        Toast.makeText(getBaseContext(), stationSpinner.getSelectedItem().toString(), Toast.LENGTH_SHORT).show();




    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {
        // TODO Auto-generated method stub

    }
    });

der dbAdapter gibt mir eine Liste, in welcher "StationA" und "StationB" drin steht.

Der Toast beweist mir, dass Default StationA drin steht, und bei der Auswahl von StationB auch StationB im Spinner steht.

mein Problem ist, dass der Spinner nix anzeigt. Hab ich wieder irgendeine Funktion übersehen? Ich habe inzwischen rausgefunden, dass spinner.setSelection sowohl nur mit index funktioniert, als auch mit index und bool für die animation.

dieser steht nun auch auf true, jedoch tut sich nix.

Grüße! und sorry fürs rumspammen. Beschäftige mich erst seit 2 1/2 Wochen mit Android.

Antworten
  • Forum-Beiträge: 11.137

17.09.2014, 17:53:15 via Website

Ich glaube du benutzt die falschen android.R vorlagen.
Die die bei dir in Benutztung sind, werden normalerweise von ListViews benutzt.

Ich würds so probieren:

SpinnerAdapter mSpinnerAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_dropdown_item,dbAdapter.getStations());

Dund die Zeile kannst du dir dann sparen:

this.stationAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //Hau wech :P

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

Antworten
  • Forum-Beiträge: 23

17.09.2014, 18:01:26 via Website

Super! ist schon nervig, wenn man hunderte Foren wälzt, Lösungen übernimmt, die dort vorgestellt werden und diese dann nicht funktionieren.

Funktioniert also auch... Ich glaub so langsam muss ich die als CoAutor des Projekts angeben :P

Grüße und dickes Danke!

Antworten
  • Forum-Beiträge: 11.137

17.09.2014, 18:09:25 via Website

Kein Problem, aber denk mal ernsthaft daran dir ein Buch über Android Entwicklung anzuschaffen.
Und wenn es nur eine Lektüre zum nachschlagen ist.
Hilft am Anfang viel.

PS: Thread bitte auf beantwortet setzen.

— geändert am 17.09.2014, 18:09:52

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

Antworten