Ya, saya tahu ada AlertDialog.Builder, tapi saya terkejut mengetahui betapa sulitnya (well, setidaknya tidak ramah programmer) untuk menampilkan dialog di Android.
Saya dulu adalah pengembang .NET, dan saya ingin tahu apakah ada yang setara dengan Android berikut ini?
if (MessageBox.Show("Sure?", "", MessageBoxButtons.YesNo) == DialogResult.Yes){
// Do something...
}
Jawaban:
AlertDialog.Builder sebenarnya tidak terlalu sulit untuk digunakan. Memang agak menakutkan pada awalnya, tetapi begitu Anda menggunakannya agak sederhana dan kuat. Saya tahu Anda telah mengatakan Anda tahu cara menggunakannya, tetapi ini hanyalah contoh sederhana:
Anda juga dapat menggunakan kembali itu
DialogInterface.OnClickListener
jika Anda memiliki kotak ya / tidak lain yang harus melakukan hal yang sama.Jika Anda membuat Dialog dari dalam
View.OnClickListener
, Anda dapat menggunakanview.getContext()
untuk mendapatkan Konteks. Atau Anda bisa menggunakanyourFragmentName.getActivity()
.sumber
AlertDialog.Builder builder = new AlertDialog.Builder(getView().getContext());
Coba ini:
sumber
The constructor AlertDialog.Builder(MainActivity.DrawerItemClickListener) is undefined
Jawaban Steve H tepat, tetapi ini sedikit informasi lebih lanjut: alasan dialog berjalan seperti yang mereka lakukan adalah karena dialog di Android tidak sinkron (eksekusi tidak berhenti ketika dialog ditampilkan). Karena itu, Anda harus menggunakan panggilan balik untuk menangani pilihan pengguna.
Lihatlah pertanyaan ini untuk diskusi yang lebih panjang antara perbedaan Android dan .NET (yang berkaitan dengan dialog): Dialog / AlertDialogs: Cara "memblokir eksekusi" saat dialog naik (.NET-style)
sumber
Ini bekerja untuk saya:
sumber
Menanyakan Seseorang apakah dia ingin menelepon atau tidak Dialog ..
sumber
Jawaban Steves benar meskipun ketinggalan zaman dengan fragmen. Berikut ini adalah contoh dengan FragmentDialog.
Kelas:
Untuk memulai dialog:
Anda juga bisa membiarkan kelas menerapkan
onClickListener
dan menggunakannya sebagai ganti pendengar yang tertanam.sumber
Terima kasih nikki jawaban Anda telah membantu saya meningkatkan yang sudah ada hanya dengan menambahkan tindakan yang saya inginkan sebagai berikut
sumber
Di Kotlin:
sumber
Tampilkan dialog secara anonim sebagai rantai perintah & tanpa mendefinisikan objek lain:
sumber
Semua jawaban di sini bermuara pada kode yang panjang dan tidak ramah pembaca: hanya apa yang ingin dihindari oleh orang yang bertanya. Bagi saya, pendekatan yang paling mudah adalah menggunakan lambdas di sini:
Lambdas di Android memerlukan plugin retrolambda ( https://github.com/evant/gradle-retrolambda ), tetapi sangat membantu dalam menulis kode yang lebih bersih.
sumber
Terima kasih. Saya menggunakan API Level 2 (Android 1.1) dan bukannya
BUTTON_POSITIVE
danBUTTON_NEGATIVE
saya harus menggunakanBUTTON1
danBUTTON2
.sumber
1.Buat AlertDialog mengatur pesan, judul dan Tombol Positif, Negatif:
2. Sekarang temukan kedua tombol di DialogInterface Klik lalu setOnClickListener ():
3.Untuk Tampilkan Alertdialog:
Catatan: Jangan lupa Kata Kunci Akhir dengan AlertDialog.
sumber
sumber
Anda dapat menerapkan solusi umum untuk keputusan dan menggunakan dalam kasus lain tidak hanya untuk ya / tidak dan kustomisasi lansiran dengan animasi atau tata letak:
Sesuatu seperti ini; pertama buat kelas Anda untuk mentransfer data:
setelah antarmuka untuk mengembalikan hasilnya
Sekarang Anda dapat membuat utils untuk akses dengan mudah (di kelas ini Anda dapat menerapkan berbagai animasi atau tata letak khusus untuk lansiran):
dan panggilan terakhir dalam aktivitas atau fragmen; Anda dapat menggunakan ini dalam kasus Anda atau untuk tugas lain:
sumber
Anda dapat melakukannya dengan mudah di Kotlin:
sumber
Untuk Kotlin di Android ::
sumber
Implementasi Kotlin.
Anda dapat membuat fungsi sederhana seperti ini:
dan menyebutnya seperti ini:
sumber