为什么alert.getButton(AlertDialog.BUTTON_POSITIVE)返回NULL?

Ted*_*Ted 3 android android-alertdialog

(对不起,发现这个问题已经回答了,见下文)

所以,我首先尝试扩展AlertDialog以便我可以使用我的弹出窗口中需要的EditTexts做一些事情,但是当我无法使用它时,我现在使用MainActivity中的普通AlertDialog.Builder来创建我需要的.

下面的代码创建一个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!
Run Code Online (Sandbox Code Playgroud)

osi*_*s81 7

我有同样的问题.我解决这个问题的工作方法是:

alert.show()

在访问按钮之前