(Извините, узнал, что на этот вопрос уже дан ответ, см. Ниже)
Итак, я сначала попытался расширить AlertDialog , чтобы я мог сделатьнекоторые вещи с EditTexts мне нужно иметь в моем всплывающем окне, но когда я не мог заставить это работать , я теперь использую обычный AlertDialog.Builder внутри своей MainActivity, чтобы создать то, что мне нужно.
Приведенный ниже код создает AlertDialog и использует «setView» для добавления к нему моего пользовательского представления.Когда AlertDialog отображается впервые, его кнопка POSITIVE должна быть отключена, и только когда все EditTexts имеют текст, кнопка POSITIVT должна быть включена.
Поэтому я пытаюсь сделать это, после использования builder.create (), получив положительную кнопку.
Однако alert.getButton (AlertDialog.BUTTON_POSITIVE) возвращает NULL .Почему?
final EditText ed1 = (EditText) findViewById(R.id.editTextPausArea);
final EditText ed2 = (EditText) findViewById(R.id.EditTextPausTimeFrom);
final EditText ed3 = (EditText) findViewById(R.id.EditTextPausTimeTo);
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this)
.setTitle("Begär paus")
.setView(view)
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
}).setNegativeButton("Avbryt", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Do nothing.
}
});
final AlertDialog alert = builder.create();
final Button b = alert.getButton(AlertDialog.BUTTON_POSITIVE);
b.setEnabled(false); // NullPointerException here!