In AlertDialog Android dokümanlar , bir AlertDialog içinde özel bir görünüm ayarlamak için aşağıdaki talimat ve örnek verir:
Daha karmaşık bir görünüm görüntülemek istiyorsanız, "gövde" adlı Çerçeve Düzeni'ne bakın ve görünümünüzü buna ekleyin:
FrameLayout fl = (FrameLayout) findViewById(R.id.body);
fl.add(myView, new LayoutParams(FILL_PARENT, WRAP_CONTENT));
Öncelikle, bunun add()
bir yazım hatası olduğu ve olması gerektiği çok açık addView()
.
R.id.body'yi kullanan ilk satır kafam karıştı. Görünüşe göre bu AlertDialog'un gövde öğesi ... ama bunu koduma giremem, b / c bir derleme hatası veriyor. R.id.body nerede tanımlanır veya atanır?
İşte kodum. setView(findViewById(R.layout.whatever)
Oluşturucu üzerinde kullanmayı denedim ama işe yaramadı. Bunu manuel olarak şişirmediğim için mi varsayıyorum?
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))
. Aşağıdaki Sergio Viudes'e kredi.