J'essaye de créer une boîte de dialogue d'alerte avec un EditTextobjet. J'ai besoin de définir le texte initial du EditTextprogramme. Voici ce que j'ai.
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
// ...Irrelevant code for customizing the buttons and title
AlertDialog alertDialog = dialogBuilder.create();
LayoutInflater inflater = this.getLayoutInflater();
alertDialog.setContentView(inflater.inflate(R.layout.alert_label_editor, null));
EditText editText = (EditText) findViewById(R.id.label_field);
editText.setText("test label");
alertDialog.show();
Que dois-je changer pour pouvoir avoir un EditTextobjet valide ?
[Éditer]
Donc, il a été souligné par user370305 et d'autres que je devrais utiliser alertDialog.findViewById(R.id.label_field);
Malheureusement, il y a un autre problème ici. Apparemment, la définition de la vue du contenu sur le AlertDialogprovoque le blocage du programme lors de l'exécution. Vous devez le définir sur le constructeur.
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
// ...Irrelevant code for customizing the buttons and title
dialogBuilder.setView(inflater.inflate(R.layout.alert_label_editor, null));
AlertDialog alertDialog = dialogBuilder.create();
LayoutInflater inflater = this.getLayoutInflater();
EditText editText = (EditText) alertDialog.findViewById(R.id.label_field);
editText.setText("test label");
alertDialog.show();
Malheureusement, lorsque vous faites cela, alertDialog.findViewById(R.id.label_field);revient maintenant null.
[/Éditer]
dialogBuilder.setView(R.layout.dialog_layout);