0

所以,我有一个简单的代码:

private void promptToZap() {
    DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            switch (which) {
            case DialogInterface.BUTTON_POSITIVE:
                startProgressBar(20);
                break;

            case DialogInterface.BUTTON_NEGATIVE:
                gotoGrassLoop();
                break;
            }
        }
    };

    overlay.setProgress(0);
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage("CI is yellow, would you like to zap?").setPositiveButton("Yes", dialogClickListener).setNegativeButton("No", dialogClickListener).show();
}

从只调用一次的方法中只调用一次。

在变压器上它工作正常。它提示一次,它完美地处理用户的选择。

在 Note 2 和 Galaxy Tab 上,它会提示两次。然后,当您从中选择选项时,它会执行两次结果。

所以,一般问题....

他们是一种检查是否已经显示 AlertDialog 的方法吗?

或者

我怎样才能让它只提示一次而不是两次?

任何帮助表示赞赏。

谢谢!

4

1 回答 1

0

好吧,谷歌应该比我做的多一点。

但解决方案类似于:如何防止对话框打开两次

我只是使用了一个布尔值 isDialogShown 并在调用 .show() 之前检查它是否为 false,然后在 .show() 之后将其设置为 true,然后在按钮/case(switch) 语句中将其重置为 false。

这对我的目的有用。

于 2013-04-06T15:00:42.730 回答