Ich versuche, einen Warndialog mit einem EditText
Objekt zu erstellen . Ich muss den Anfangstext des EditText
programmgesteuert 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 EditText
Objekt 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 AlertDialog
zum 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);
getLayoutInflater()
wenn dasinflater
nicht definiert ist.Verwende das hier
quelle
builder.create().show();
, können Sie denbuilder.show();
Code für weitere Details überprüfenDu kannst schreiben:
quelle
Falls es jemand in Kotlin will:
Antwort von @ user370305 neu gepostet .
quelle
Ändere das:
dazu:
quelle
quelle
quelle