首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rooted tf 101与三星Note2和三星Galaxy Tab的AlertDialogue行为差异

rooted tf 101与三星Note2和三星Galaxy Tab的AlertDialogue行为差异
EN

Stack Overflow用户
提问于 2013-04-06 22:20:27
回答 1查看 40关注 0票数 0

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

代码语言:javascript
复制
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选项卡上,它会提示两次。然后,当您从其中选择选项时,它会执行两次结果。

所以,一般的问题...

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

如何使其只提示一次而不是两次?

任何帮助都是非常感谢的。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-06 23:00:43

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

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

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

这对我的目的很有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15852030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档