Я пытаюсь создать диалоговое окно предупреждения с EditText
объектом. Мне нужно программно установить исходный текст EditText
файла. Вот что у меня есть.
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();
Что мне нужно изменить, чтобы у меня был действующий EditText
объект?
[редактировать]
Итак, user370305 и другие указали, что я должен использовать alertDialog.findViewById(R.id.label_field);
К сожалению, здесь есть еще одна проблема. По-видимому, установка представления содержимого по AlertDialog
причинам, которые приводят к сбою программы во время выполнения. Вы должны установить его на строителе.
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();
К сожалению, при этом alertDialog.findViewById(R.id.label_field);
теперь возвращается null
.
[/редактировать]
dialogBuilder.setView(R.layout.dialog_layout);
getLayoutInflater()
когдаinflater
не определен.Используйте этот
источник
builder.create().show();
, вы можете проверитьbuilder.show();
код для более подробной информацииТы можешь написать:
источник
Если кому-то это нужно в Котлине:
Отложил ответ @ user370305 .
источник
Измените это:
к этому:
источник
источник
источник