所以,我有一个简单的代码:
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?
或
我怎样才能让它只提示一次而不是两次?
感谢任何帮助。
谢谢!
答案 0 :(得分:0)
好吧,谷歌应该比我做的更多。
但解决方案类似于:How to prevent dialog to open twice
我刚刚使用boolean,isDialogShown并在调用.show()之前检查它是否为false,然后在.show()之后将其设置为true,然后在buttons / case(switch)语句中将其重置为false
这符合我的目的。