Apa perbedaan antara dialog yang dibubarkan atau dibatalkan di Android?


194

Seperti judulnya, apa perbedaan antara dialog yang dibubarkan atau dibatalkan di Android?

Jawaban:


188

Biasanya, dialog diberhentikan saat tugasnya selesai dan dihapus dari layar. Dialog dibatalkan ketika pengguna ingin keluar dari dialog dan menekan tombol Kembali.

Misalnya, Anda memiliki dialog Ya / Tidak standar di layar. Jika pengguna mengklik Tidak, maka dialog ditolak dan nilai untuk Tidak dikembalikan ke pemanggil. Jika alih-alih memilih Ya atau Tidak, pengguna mengklik Kembali untuk keluar dari dialog daripada membuat pilihan kemudian dialog dibatalkan dan tidak ada nilai yang dikembalikan ke pemanggil.


Terima kasih balasannya. Saya mencoba mengatur apa yang terjadi jika pengguna menekan tombol batal pada datepicker. Pertama saya mencoba menggunakan pendengar pemberhentian, dan itu berhasil, tetapi juga terjadi jika pengguna memilih waktu. Lalu saya mencoba membatalkan pendengar, dan itu tidak pernah padam, bahkan jika saya mendorong membatalkan. Apakah Anda tahu apa yang harus saya lakukan?
Aal

2
Jika Anda menggunakan DatePickerDialog, Anda harus menggunakan OnDateSetListener untuk mendapatkan pemberitahuan ketika tanggal berubah. Jika seseorang mengklik tombol batal ... maka itu tidak akan dipanggil dan dialog akan hilang dengan sendirinya. Untuk penggunaan normal DatePickerDialog, Anda tidak perlu mengatur pendengar lain.
Lee

FYI, tombol kembali memicu pendengar batal dan pendengar pemberhentian.
Urban

28

dismissadalah sesuatu yang harus Anda panggil secara eksplisit dalam kode Anda, biasanya untuk menanggapi acara klik pada tombol di Anda Dialog. Jika Anda suka, Anda dapat menghubungi dismissDialogdi Activity, yang pada akan mengubah panggilan dismisspada Dialog.

The cancelMetode hanya mengeksekusi ketika secara eksplisit disebut dalam kode Anda, atau ketika pengguna menekan tombol BACK ketika dibatalkan Anda Dialogterbuka (seperti @Lee dicatat).

Jika Anda menggunakan DatePicker, maka semua ini masih terjadi. Seperti @Lee katakan, DatePickerDialog.OnDateSetListenerhanya mendeteksi ketika pengguna telah memilih tanggal dari DatePicker.

Itu Android Developer Referensi menyediakan info lebih lanjut tentang Dialogs.


Anda juga dapat memanggil cancelmetode. Ada dua pendengar berbeda untuk dimissing dan canceling.
creativecreatorormaybenot

12

DismissMemanggil pemberhentian menghapus dialog dari layar. Metode ini dapat dipanggil dengan aman dari utas apa pun. Perhatikan bahwa Anda tidak harus mengesampingkan metode ini untuk melakukan pembersihan ketika dialog ditolak, melainkan menerapkannya di onStop .

CancelMemanggil pembatalan, membatalkan dialog. Ini pada dasarnya sama dengan memanggil dismiss () , tetapi juga akan memanggil DialogInterface.OnCancelListener Anda , jika terdaftar.

Hide Metode ini menyembunyikan dialog, tetapi jangan mengabaikannya.

Dan untuk lebih lanjut lihat di sini

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.