Dans les docs sur Android AlertDialog, il donne les instructions suivantes et exemple pour un affichage personnalisé dans un AlertDialog:
Si vous souhaitez afficher un plus complexe, de rechercher le FrameLayout appelé "corps" et ajouter votre point de vue à elle:
FrameLayout fl = (FrameLayout) findViewById(R.id.body);
fl.add(myView, new LayoutParams(FILL_PARENT, WRAP_CONTENT));
Tout d'abord, il est assez évident que add()
est une faute de frappe et est destiné à être addView()
.
Je suis confus par la première ligne à l'aide de R. id.corps. Il semble que c'est l'élément de corps de la AlertDialog ... mais je ne peux pas entrer dans mon code b/c il donne une erreur de compilation. D'où R. id.le corps s'défini ou affectés ou quoi?
Voici mon code. J'ai essayé d'utiliser setView(findViewById(R.layout.whatever)
sur le constructeur, mais il ne fonctionne pas. Je suppose parce que je n'ai pas déployer manuellement?
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();