Я пытаюсь создать диалог предупреждения с объектом 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.
[/править]