Saya memiliki beberapa fragmen yang perlu menampilkan dialog biasa. Pada dialog ini, pengguna dapat memilih jawaban ya / tidak, dan fragmen harus berperilaku sesuai.
Sekarang, Fragment
kelas tidak memiliki onCreateDialog()
metode untuk ditimpa, jadi saya rasa saya harus mengimplementasikan dialog di luar, di dalamnya Activity
. Tidak apa-apa, tapi kemudian Activity
kebutuhan untuk melaporkan kembali jawaban yang dipilih entah bagaimana ke fragmen. Saya tentu saja bisa menggunakan pola panggilan balik di sini, jadi fragmen mendaftarkan dirinya di kelas Activity
with pendengar, dan Aktivitas akan melaporkan kembali jawabannya melalui itu, atau sesuatu seperti itu.
Tapi ini tampaknya menjadi kekacauan besar untuk tugas sederhana seperti menampilkan dialog ya-tidak yang "sederhana" dalam sebuah fragmen. Juga, dengan cara ini saya Fragment
akan menjadi kurang mandiri.
Adakah cara yang lebih bersih untuk melakukan ini?
Edit:
Jawaban atas pertanyaan ini tidak benar-benar menjelaskan secara detail bagaimana seseorang harus menggunakan DialogFragments untuk menampilkan dialog dari Fragmen. Jadi AFAIK, cara yang harus dilakukan adalah:
- Tampilkan Fragmen.
- Jika perlu, buat instance DialogFragment.
- Tetapkan Fragmen asli sebagai target DialogFragment ini, dengan
.setTargetFragment()
. - Tampilkan DialogFragment dengan .show () dari Fragmen aslinya.
- Ketika pengguna memilih beberapa opsi pada DialogFragment ini, beri tahu Fragmen asli tentang pilihan ini (mis. Pengguna mengklik 'ya'), Anda bisa mendapatkan referensi Fragmen asli dengan .getTarget ().
- Tutup DialogFragment.