Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.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中的警报对话框 我在做什么: 我正在使用下面的代码启动一个对话框 单击“我想关闭对话框” 正在发生的事情; 对话框正在关闭,但我必须单击“确定”按钮两次(看起来警报弹出两次,但第二次按“确定”时关闭) 我想做的是: 我想第一次单击“确定”关闭对话框_Android_Android Alertdialog - Fatal编程技术网

首次按下按钮关闭android中的警报对话框 我在做什么: 我正在使用下面的代码启动一个对话框 单击“我想关闭对话框” 正在发生的事情; 对话框正在关闭,但我必须单击“确定”按钮两次(看起来警报弹出两次,但第二次按“确定”时关闭) 我想做的是: 我想第一次单击“确定”关闭对话框

首次按下按钮关闭android中的警报对话框 我在做什么: 我正在使用下面的代码启动一个对话框 单击“我想关闭对话框” 正在发生的事情; 对话框正在关闭,但我必须单击“确定”按钮两次(看起来警报弹出两次,但第二次按“确定”时关闭) 我想做的是: 我想第一次单击“确定”关闭对话框,android,android-alertdialog,Android,Android Alertdialog,试试这个 public AlertDialog open(String msg) { AlertDialog.Builder builder = new AlertDialog.Builder(this, AlertDialog.THEME_DEVICE_DEFAULT_DARK); builder.setTitle(R.string.about_title) .setMessage(msg)

试试这个

public AlertDialog open(String msg) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this,
                AlertDialog.THEME_DEVICE_DEFAULT_DARK);
        builder.setTitle(R.string.about_title)
                .setMessage(msg)
                .setPositiveButton("Ok", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();
                    }
                }).show();

        return builder.create();
    }

    }

但是您还需要创建对话框,我看不到您在哪里创建它

您不需要在
onResume()中弹出对话框<每次窗口再次聚焦时,都会调用code>onResume()
。当弹出对话框时,窗口将失去焦点。取消对话框时,活动将再次聚焦,执行
onResume()
,并再次显示对话框

在其他地方调用该对话框,它就会工作(
onStart()
例如)

简单的解决方案是

您必须将打开弹出窗口的代码移动到某个位置,因为无论何时您输入该活动,您的
onResume()
都将被调用,并且每次对话框弹出窗口都将打开,这是错误的。所以只要把代码移到正确执行的地方就行了


注意:调用
对话框。取消()
而不是
对话框。取消()

调用
对话框。取消()
而不是
对话框。取消()我尝试了,但结果相同!。。。。正如我所说,对话框将关闭,但如果弹出两次,看起来就像对话框本身……显示打开对话框的事件……在onResume()中,我弹出此警报对话框好的,这就是问题的原因。因为每次当你在你的活动中时,ur onResume()都会调用并弹出。如果你检查上面的评论,你就会看到谁说了什么,什么不起作用。[+1]。。。已解决此问题,但查看此问题stackoverflow.com/q/27577887/1083093(类似于当前行为)已解决此问题,但查看此问题stackoverflow.com/q/27577887/1083093(类似于当前行为)
public AlertDialog open(String msg) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this,
                AlertDialog.THEME_DEVICE_DEFAULT_DARK);
        builder.setTitle(R.string.about_title)
                .setMessage(msg)
                .setPositiveButton("Ok", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();
                    }
                }).show();

        return builder.create();
    }

    }