Я намагаюся створити діалог попередження з 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об'єкт?
[редагувати]
Отже, користувач370305 та інші вказали на те, що я повинен використовувати 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);