Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么alert.getButton(AlertDialog.BUTTON_正数)返回NULL?_Android_Android Alertdialog - Fatal编程技术网

Android 为什么alert.getButton(AlertDialog.BUTTON_正数)返回NULL?

Android 为什么alert.getButton(AlertDialog.BUTTON_正数)返回NULL?,android,android-alertdialog,Android,Android Alertdialog,(很抱歉,发现此问题已得到回答,请参见下文) 因此,我首先要做的是,我可以对弹出窗口中需要的编辑文本进行一些处理,但现在,我正在MainActivity中使用普通的AlertDialog.Builder来创建我需要的内容 下面的代码创建了一个AlertDialog,并使用“setView”将我的自定义视图添加到其中。首次显示AlertDialog时,应禁用其正按钮,并且只有当所有EditText都有文本时,才应启用正按钮 因此,在使用builder.create()之后,我尝试通过获得肯定按钮来

(很抱歉,发现此问题已得到回答,请参见下文)

因此,我首先要做的是,我可以对弹出窗口中需要的编辑文本进行一些处理,但现在,我正在MainActivity中使用普通的AlertDialog.Builder来创建我需要的内容

下面的代码创建了一个AlertDialog,并使用“setView”将我的自定义视图添加到其中。首次显示AlertDialog时,应禁用其正按钮,并且只有当所有EditText都有文本时,才应启用正按钮

因此,在使用builder.create()之后,我尝试通过获得肯定按钮来实现这一点

但是,alert.getButton(AlertDialog.BUTTON_正数)返回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!
这可能会有帮助

.setPositiveButton("OK", new android.content.DialogInterface.OnClickListener() {                
    @Override
    public void onClick(DialogInterface dialog, int which) {
         ((AlertDialog)dialog).getButton(which).setVisibility(View.INVISIBLE);

    }
})

我也有同样的问题。我的工作解决方案是调用:

alert.show()


在访问按钮之前

对不起,我发现这是一个重复的按钮:它不是禁用按钮。它是在点击按钮后消失的。奇怪的行为。