Dalam dokumen Android di AlertDialog , ini memberikan instruksi dan contoh berikut untuk menyetel tampilan kustom di AlertDialog:
Jika Anda ingin menampilkan tampilan yang lebih kompleks, cari FrameLayout yang disebut "body" dan tambahkan tampilan Anda ke sana:
FrameLayout fl = (FrameLayout) findViewById(R.id.body);
fl.add(myView, new LayoutParams(FILL_PARENT, WRAP_CONTENT));
Pertama, cukup jelas bahwa add()
itu salah ketik dan memang seharusnya begitu addView()
.
Saya bingung dengan baris pertama yang menggunakan R.id.body. Tampaknya itu adalah elemen tubuh dari AlertDialog ... tetapi saya tidak bisa memasukkannya begitu saja dalam kode saya b / c itu memberikan kesalahan kompilasi. Di mana R.id.body ditetapkan atau ditugaskan atau apa pun?
Ini kode saya. Saya mencoba menggunakan setView(findViewById(R.layout.whatever)
pada pembangun tetapi tidak berhasil. Saya berasumsi karena saya tidak mengembang secara manual?
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Title")
.setCancelable(false)
.setPositiveButton("Go", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
EditText textBox = (EditText) findViewById(R.id.textbox);
doStuff();
}
});
FrameLayout f1 = (FrameLayout)findViewById(R.id.body /*CURRENTLY an ERROR*/);
f1.addView(findViewById(R.layout.dialog_view));
AlertDialog alert = builder.create();
alert.show();
.setView(getLayoutInflater().inflate(R.layout.dialog_view, null))
ke pembangun. Penghargaan untuk Sergio Viudes, di bawah.