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();

Respuestas a la pregunta(11)

Su respuesta a la pregunta