Ich schreibe das Ereignis setOnItemSelectedListener von Spinner nach spinnerRanger.setSelection.
Ich denke, Toast.makeText(...)
wird nicht gestartet, wenn ich die APP zum ersten Mal starte, aber prompte Informationen werden immer noch angezeigt, warum?
Trevor Carothers:
Wenn ich ein Listenereignis DoLongTimeOperation()
vor Auswahl einfüge, wird es trotzdem den Toast anzeigen?
Code A:
%Vor%Code B
%Vor%Code C
%Vor%Ich habe diesen Code einfach mit meinem eigenen ArrayAdapter ausgeführt und er hat den Toast sofort angezeigt, als die View erstellt wurde und setSelection () aufgerufen wurde, bevor der Listener gesetzt wurde (wie Sie es oben haben).
Dies ist definitiv nicht intuitiv, da Sie den Listener einstellen, NACHDEM die Auswahl getroffen wurde. Der einzige Weg, dem auf den Grund zu gehen, ist einen tiefen Tauchgang in den Quellcode. Nach dem Durchstöbern fand ich heraus, dass sie dieser runnable für den Haupt-Thread, um den Listener über Änderungen der Auswahl zu informieren. Dies ist die Reihenfolge der Ereignisse:
Geben Sie ein Runnable ein, um den Auswahllistener so festzulegen, dass er nach SelectionNotifier für das erste Pass-Through verarbeitet wird:
%Vor%Die neue Reihenfolge der Ereignisse lautet:
Tags und Links android