Ich versuche, einen Warndialog mit einem EditTextObjekt zu erstellen . Ich muss den Anfangstext des EditTextprogrammgesteuert einstellen . Hier ist was ich habe.
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();
Was muss ich ändern, damit ich ein gültiges EditTextObjekt haben kann?
[bearbeiten]
Daher wurde von user370305 und anderen darauf hingewiesen, dass ich verwenden sollte alertDialog.findViewById(R.id.label_field);
Leider gibt es hier ein anderes Problem. Anscheinend führt das Festlegen der Inhaltsansicht auf AlertDialogzum Absturz des Programms zur Laufzeit. Sie müssen es auf dem Builder einstellen.
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();
Wenn Sie dies tun, alertDialog.findViewById(R.id.label_field);kehren Sie jetzt leider zurück null.
[/bearbeiten]
dialogBuilder.setView(R.layout.dialog_layout);