AlertDialogue在Root Transformer tf 101和Samsung Note 2以及Samsung Galaxy Tab之间的不同行为

时间:2013-04-06 14:20:27

标签: android alertdialog android-alertdialog

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

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();
}

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

在Transformer上它工作正常。它提示一次,它完全处理用户选择。

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

所以,一般性问题......

他们是否可以检查是否已显示AlertDialog?

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

感谢任何帮助。

谢谢!

1 个答案:

答案 0 :(得分:0)

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

但解决方案类似于:How to prevent dialog to open twice

我刚刚使用boolean,isDialogShown并在调用.show()之前检查它是否为false,然后在.show()之后将其设置为true,然后在buttons / case(switch)语句中将其重置为false

这符合我的目的。