Wie der Titel schon sagt, was ist der Unterschied zwischen einem Dialog, der in Android geschlossen oder abgebrochen wird?
193
In der Regel wird ein Dialogfeld geschlossen, wenn sein Auftrag abgeschlossen ist und vom Bildschirm entfernt wird. Ein Dialog wird abgebrochen, wenn der Benutzer den Dialog verlassen möchte und die Schaltfläche Zurück drückt.
Beispielsweise haben Sie ein Standard-Ja / Nein-Dialogfeld auf dem Bildschirm. Wenn der Benutzer auf Nein klickt, wird das Dialogfeld geschlossen und der Wert für Nein an den Anrufer zurückgegeben. Wenn der Benutzer anstelle von Ja oder Nein auf Zurück klickt, um den Dialog zu verlassen, anstatt eine Auswahl zu treffen, wird der Dialog abgebrochen und es wird kein Wert an den Anrufer zurückgegeben.
dismiss
ist etwas, das Sie explizit in Ihrem Code aufrufen müssen, um normalerweise auf ein Klickereignis auf einer Schaltfläche in Ihrem Code zu reagierenDialog
. Wenn Sie möchten, können Sie rufendismissDialog
in dieActivity
, die in Call drehen wirddismiss
auf dieDialog
.Die
cancel
Methode wird nur ausgeführt, wenn sie in Ihrem Code explizit aufgerufen wird oder wenn der Benutzer die BACK-Taste drückt, wenn Ihr AbbruchDialog
geöffnet ist (wie @Lee vermerkt).Wenn Sie a verwenden
DatePicker
, ist dies alles immer noch der Fall. Wie @Lee sagte,DatePickerDialog.OnDateSetListener
erkennt nur, wann der Benutzer ein Datum aus dem ausgewählt hatDatePicker
.Die Android-Entwicklerreferenz enthält weitere Informationen zu
Dialog
s.quelle
cancel
Methode auch aufrufen . Es gibt zwei verschiedene Listener zum Dimmen und Abbrechen.Dismiss
Durch Aufrufen der Entlassung wird der Dialog vom Bildschirm entfernt. Diese Methode kann sicher von jedem Thread aus aufgerufen werden. Beachten Sie, dass Sie diese Methode nicht überschreiben sollten, um eine Bereinigung durchzuführen, wenn der Dialog geschlossen wird, sondern diese in onStop implementieren .Cancel
Durch Aufrufen des Abbruchs wird der Dialog abgebrochen. Dies ist im Wesentlichen dasselbe wie das Aufrufen von entlassen () , ruft jedoch auch Ihren DialogInterface.OnCancelListener auf , falls registriert.Hide
Diese Methode verbirgt den Dialog, schließt ihn jedoch nicht.Und für mehr sehen Sie hier
quelle