所以,我有一个简单的代码:
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是否已经显示的一种方法吗?
或
如何使其只提示一次而不是两次?
任何帮助都是非常感谢的。
谢谢!
发布于 2013-04-06 23:00:43
好吧,谷歌应该比我做的多一点。
但解决方案类似于:How to prevent dialog to open twice
我只使用了一个布尔值isDialogShown,并在调用.show()之前检查它是否为false,然后在.show()之后将其设置为true,然后在buttons/case(switch)语句中将其重置为false。
这对我的目的很有效。
https://stackoverflow.com/questions/15852030
复制相似问题