首次按下按钮关闭android中的警报对话框 我在做什么: 我正在使用下面的代码启动一个对话框 单击“我想关闭对话框” 正在发生的事情; 对话框正在关闭,但我必须单击“确定”按钮两次(看起来警报弹出两次,但第二次按“确定”时关闭) 我想做的是: 我想第一次单击“确定”关闭对话框
试试这个首次按下按钮关闭android中的警报对话框 我在做什么: 我正在使用下面的代码启动一个对话框 单击“我想关闭对话框” 正在发生的事情; 对话框正在关闭,但我必须单击“确定”按钮两次(看起来警报弹出两次,但第二次按“确定”时关闭) 我想做的是: 我想第一次单击“确定”关闭对话框,android,android-alertdialog,Android,Android Alertdialog,试试这个 public AlertDialog open(String msg) { AlertDialog.Builder builder = new AlertDialog.Builder(this, AlertDialog.THEME_DEVICE_DEFAULT_DARK); builder.setTitle(R.string.about_title) .setMessage(msg)
public AlertDialog open(String msg) {
AlertDialog.Builder builder = new AlertDialog.Builder(this,
AlertDialog.THEME_DEVICE_DEFAULT_DARK);
builder.setTitle(R.string.about_title)
.setMessage(msg)
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
}).show();
return builder.create();
}
}
但是您还需要创建对话框,我看不到您在哪里创建它您不需要在
onResume()中弹出对话框<每次窗口再次聚焦时,都会调用code>onResume()
。当弹出对话框时,窗口将失去焦点。取消对话框时,活动将再次聚焦,执行onResume()
,并再次显示对话框
在其他地方调用该对话框,它就会工作(onStart()
例如)简单的解决方案是
您必须将打开弹出窗口的代码移动到某个位置,因为无论何时您输入该活动,您的onResume()
都将被调用,并且每次对话框弹出窗口都将打开,这是错误的。所以只要把代码移到正确执行的地方就行了
注意:调用
对话框。取消()
而不是对话框。取消()代码>调用对话框。取消()
而不是对话框。取消()代码>我尝试了,但结果相同!。。。。正如我所说,对话框将关闭,但如果弹出两次,看起来就像对话框本身……显示打开对话框的事件……在onResume()中,我弹出此警报对话框好的,这就是问题的原因。因为每次当你在你的活动中时,ur onResume()都会调用并弹出。如果你检查上面的评论,你就会看到谁说了什么,什么不起作用。[+1]。。。已解决此问题,但查看此问题stackoverflow.com/q/27577887/1083093(类似于当前行为)已解决此问题,但查看此问题stackoverflow.com/q/27577887/1083093(类似于当前行为)
public AlertDialog open(String msg) {
AlertDialog.Builder builder = new AlertDialog.Builder(this,
AlertDialog.THEME_DEVICE_DEFAULT_DARK);
builder.setTitle(R.string.about_title)
.setMessage(msg)
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
}).show();
return builder.create();
}
}