Ich habe einen Spinner erstellt, der automatisch mit Appliance-Namen aktualisiert wird, wenn eine Person mithilfe eines Array-Adapters eine Appliance hinzufügt. Ich habe eine OnItemSelected-Methode mit dem Drehfeld erstellt. Wenn einer der Namen im Drehfeld ausgewählt ist, wird ein neues Fenster angezeigt. Das OnItemSelected wählt jedoch automatisch das erste Element in der Liste aus, wenn die Aktivität gestartet wird, sodass der Benutzer erst dann eine Auswahl treffen kann, wenn das neue Fenster angezeigt wird.
Hier ist der Code:
%Vor%Kennt jemand einen Weg, auf dem das erste Element auf der Liste nicht automatisch ausgewählt wird?
Hier ist der Code für den Rest des Spinner:
%Vor%Kennt jemand einen Weg, auf dem das erste Element auf der Liste nicht automatisch ausgewählt wird?
Es gibt immer eine Auswahl auf Spinner
, und Sie können das nicht ändern.
IMHO, Sie sollten nicht Spinner
verwenden, um den Start einer Aktivität auszulösen.
Davon abgesehen können Sie mit boolean
verfolgen, ob dies das erste Auswahlereignis ist, und es ignorieren, falls dies der Fall ist.
Wenn Sie versuchen, den ersten Aufruf der onItemSelected()
-Methode Ihres Listeners zu vermeiden, besteht eine andere Möglichkeit darin, post()
zu verwenden, um die Nachrichtenwarteschlange der Ansicht zu nutzen. Wenn der Spinner zum ersten Mal nach dem Hörer sucht, wird er noch nicht eingestellt.
Deklarieren Sie die Variable isSpinnerInitial Machen Sie dann eine Auswahl als Standardauswahl
spinnertaggeview.setSelection (-1); Die Auswahl wird nicht als -1 oder alles nicht ausgewählt wie in .Net oder einer anderen Sprache. Sie können also diese Zeile ignorieren.
%Vor%