Die Einträge von AppCompatSpinner öffnen TimePickerDialog nicht, wenn sie das zweite Mal ausgewählt werden. Bitte sehen Sie Details

8

Ich habe folgende Einträge als AppCompatSpinner :

%Vor%

Nach Auswahl von Pick a time.. wird ein TimePickerDialog geöffnet und der Benutzer kann eine Zeit auswählen. Hier ist wie:

%Vor%

Nach der ersten Auswahl von Pick a time.. wird TimePickerDialog erfolgreich geöffnet und die gewählte Zeit wird angezeigt, aber wenn ich sie erneut auswähle oder erneut klicke, passiert nichts!

Ich weiß nicht warum!

Bitte lassen Sie mich wissen, wie ich den TimePickerDialog öffnen kann und wähle die Zeit, egal wie oft ich sie anklicke / klicke.

    
Hammad Nasir 22.11.2016, 17:45
quelle

2 Antworten

6

Befolgen Sie diese Schritte:

Erstellen Sie eine benutzerdefinierte Spinner-Klasse

%Vor%

Erzeuge onItemSelectedListener in deiner Aktivität

%Vor%

Fügen Sie das Listener-Objekt der benutzerdefinierten Spinner-Methode hinzu

%Vor%

In Ihrer xml Datei

%Vor%     
Ronak Gadhia 21.12.2016, 08:48
quelle
3

Spinner (oder eigentlich AdapterView, seine Oberklasse) löst OnItemSelectedListener nur aus, wenn sich die Auswahl ändert.

Wenn Ihr Benutzer "Zeit auswählen ..." auswählt, nimmt Spinner an, dass es eine ausgewählte Option ist, und ruft den Listener nicht mehr an, wenn er erneut ausgewählt wird. Sie können jedoch feststellen, dass, wenn "Wählen Sie eine Zeit ..." ausgewählt ist, dann "Jetzt" und dann "Wählen Sie eine Zeit ...", der Dialog erscheint.

Ich würde empfehlen, Spinner in Ihrem Fall zu verwenden (und mit der ausgewählten Ansicht etwas seltsame Scheiße zu machen). Sie können das gleiche mit TextView erreichen, das die ausgewählte Zeit und zwei Schaltflächen anzeigt - eine zum Anzeigen des Dialogs und eine zum Zurücksetzen der Zeit auf jetzt.

    
Marcin Jedynak 22.11.2016 18:09
quelle