Dalam aplikasi Android, saya ingin menampilkan tampilan daftar kustom di AlertDialog.
Bagaimana saya bisa melakukan ini?
android
android-alertdialog
Brad Larson
sumber
sumber
Jawaban:
Digunakan kode di bawah ini untuk menampilkan daftar khusus di AlertDialog
sumber
Menurut dokumentasi , ada tiga jenis daftar yang dapat digunakan dengan
AlertDialog
:Saya akan memberikan contoh masing-masing di bawah ini.
Daftar pilihan tunggal tradisional
Cara membuat daftar pilihan tunggal tradisional adalah menggunakan
setItems
.Versi Java
Tidak perlu tombol OK karena segera setelah pengguna mengklik pada kontrol item daftar dikembalikan ke
OnClickListener
.Versi Kotlin
Daftar tombol radio
Keuntungan dari daftar tombol radio di atas daftar tradisional adalah bahwa pengguna dapat melihat apa pengaturan saat ini. Cara membuat daftar tombol radio adalah menggunakan
setSingleChoiceItems
.Versi Java
Saya sulit mengkodekan item yang dipilih di sini, tetapi Anda dapat melacaknya dengan variabel anggota kelas dalam proyek nyata.
Versi Kotlin
Daftar kotak centang
Cara membuat daftar kotak centang adalah menggunakan
setMultiChoiceItems
.Versi Java
Di sini saya sulit mengkodekan item mana dalam daftar yang sudah diperiksa. Ini lebih mungkin bahwa Anda ingin melacak mereka dalam
ArrayList<Integer>
. Lihat contoh dokumentasi untuk lebih jelasnya. Anda juga dapat mengatur item yang dicentang kenull
jika Anda selalu ingin semuanya dimulai tidak dicentang.Versi Kotlin
Catatan
context
di dalam kode di atas, jangan gunakangetApplicationContext()
atau Anda akan mendapatkanIllegalStateException
(lihat di sini untuk alasannya). Alih-alih, dapatkan referensi ke konteks aktivitas, seperti denganthis
.setAdapter
atausetCursor
atau lewat diCursor
atauListAdapter
ke dalamsetSingleChoiceItems
atausetMultiChoiceItems
.Untuk menguji semua contoh di atas, saya hanya punya proyek sederhana dengan satu tombol daripada menunjukkan dialog ketika diklik:
Terkait
sumber
RecyclerView
tata letak untuk itu.BUTTON_POSITIVE
) atau posisi item diklik".Builder.setAdapter(ListAdapter, DialogInterface.OnClickListener)
:which
di listeneronClick
akan sama dengan posisi item yang diklik.Builder.setOnItemSelectedListener
tidak akan berpengaruh.Anda dapat menggunakan dialog khusus.
Tata letak dialog khusus.
list.xml
Dalam aktivitas Anda
Edit:
Menggunakan alertdialog
custom.xml
Jepret
sumber
sumber
ListAdapter
withsetSingleChoiceItems
(sangat mirip dengan panggilan di atas)Gunakan
import android.app.AlertDialog;
impor " " dan kemudian Anda menulissumber
show()
melakukan keduanya.Calling this method is functionally identical to: AlertDialog dialog = builder.create(); dialog.show();
itu langsung darishow()
dokumentasi metodeIni terlalu sederhana
sumber
Sebagai seorang pemula, saya sarankan Anda mengunjungi http://www.mkyong.com/android/android-custom-dialog-example/
Saya akan rundown apa yang dasarnya
Dialog
dialog.show()
metode.sumber
Di Kotlin:
sumber
Ini adalah cara menampilkan dialog tata letak khusus dengan item daftar kustom, dapat disesuaikan sesuai kebutuhan Anda.
LANGKAH - 1 Buat tata letak DialogBox yaitu: -
R.layout.assignment_dialog_list_view
LANGKAH - 2 Buat tata letak item daftar khusus sesuai logika bisnis Anda
R.layout.item_assignment_dialog_list_layout
LANGKAH - 3 Buat kelas model data pilihan Anda sendiri
LANGKAH - 4 Buat adaptor khusus
}
LANGKAH - 5 Buat fungsi ini dan berikan ArrayList model data di atas dalam metode ini
Langkah - 6 Memberikan latar belakang sudut bundar ke kotak dialog
@ drawable / rectangle_round_corner_assignment_alert
sumber
Bukankah lebih halus untuk membuat metode yang dipanggil setelah pembuatan unit EditText di AlertDialog, untuk penggunaan umum?
sumber
sumber