Android Spinner.setSelection() funktioniert nicht

Bin ich ein spinner, die gefüllt ist mit einem CursorAdapter. Jetzt beim erstellen der spinner (dynamisch) möchte ich auf eine Standard-Auswahl unterschiedlich zu 0 (0 ist das erste Element in der CursorAdapter Liste)

Also ich hab ein Trendsetter für diesen job, das wird nur aufgerufen, nachdem das Objekt erstellt wurde. Aber aus irgendeinem Grund, egal was ich pass auf, dass setter, immer 0 übergeben wird, die onItemSelected() Methode innerhalb der Spinner ist OnItemSelectedListener.

ABER wenn ich nur warten, bis die erste erste Auswahl geschah und meine setter wieder alles funktioniert. So, um es hier klar ist, was ich sehe im debugger:

  • Objekt (spinner) erstellt
  • spinner Hörer befestigt ist
  • setter ausgeführt wird, eine Zahl, sagen wir 4 (die spinner enthält mehr als 4 Selektionen) wird an die setSelection() Methode
  • EIN BISSCHEN WARTEN,
  • JETZT onItemSelected() zum ersten mal ausgeführt wird, aber die position gegeben, die Methode ist 0!
  • WARTEN, EIN BISSCHEN MEHR
  • wieder laufen wir die setter -
  • wieder onItemSelected() ausgeführt, DIESE ZEIT, die position gegeben ist, 4 wie es sein soll!

Nun, die ' s verdrahtet. Es scheint nicht möglich sein, dass spinner, bis die erste erste Auswahl, die ist immer 0, die ausgeführt wurde. Warum also ist es so wie es ist und was kann ich tun, um die anfängliche Auswahl?

Könnten Sie bitte poste den code, der verwendet wird beim einrichten der Spinner? Es klingt wie es sein könnte, weil Sie etwas code in der falschen Reihenfolge
Diese Antwort (auf eine andere Frage) bei mir funktioniert: stackoverflow.com/a/17370964/1617737

InformationsquelleAutor masi | 2012-01-28

Schreibe einen Kommentar