Antworten:
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 reagieren Dialog
. Wenn Sie möchten, können Sie rufen dismissDialog
in die Activity
, die in Call drehen wird dismiss
auf die Dialog
.
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 Abbruch Dialog
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 hat DatePicker
.
Die Android-Entwicklerreferenz enthält weitere Informationen zu Dialog
s.
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