Estou tentando criar um diálogo de alerta com um EditText
objeto. Preciso definir o texto inicial do EditText
programaticamente. Aqui está o que eu tenho.
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();
O que preciso alterar para ter um EditText
objeto válido ?
[editar]
Então, foi apontado pelo usuário 370305 e outros que eu deveria usar alertDialog.findViewById(R.id.label_field);
Infelizmente, há outro problema aqui. Aparentemente, definir a visualização do conteúdo no AlertDialog
faz com que o programa trave durante a execução. Você deve configurá-lo no construtor.
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();
Infelizmente, quando você faz isso, alertDialog.findViewById(R.id.label_field);
agora retorna null
.
[/editar]
dialogBuilder.setView(R.layout.dialog_layout);
getLayoutInflater()
quando oinflater
não está definido.Use este
fonte
builder.create().show();
, você pode verificar obuilder.show();
código para mais detalhesVocê pode escrever:
fonte
Caso alguém queira em Kotlin:
Resposta repostada de @ user370305 .
fonte
Mude isso:
para isso:
fonte
fonte
fonte