Cómo implementar una vista personalizada de AlertDialog
En elDocumentos de Android en AlertDialog, proporciona las siguientes instrucciones y ejemplos para configurar una vista personalizada en un AlertDialog:
Si desea mostrar una vista más compleja, busque FrameLayout llamado "cuerpo" y agregue su vista:FrameLayout fl = (FrameLayout) findViewById(R.id.body);
fl.add(myView, new LayoutParams(FILL_PARENT, WRAP_CONTENT));
En primer lugar, es bastante obvio queadd()
es un error tipográfico y está destinado a seraddView()
.
Estoy confundido por la primera línea usando R.id.body. Parece que es el elemento del cuerpo del AlertDialog ... pero no puedo simplemente ingresarlo en mi código b / c, me da un error de compilación. ¿Dónde se define o asigna R.id.body o lo que sea?
Aquí está mi código. Traté de usarsetView(findViewById(R.layout.whatever)
en el constructor pero no funcionó. ¿Asumo porque no lo inflé manualmente?
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();