public void open(String custMsg){
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setMessage(custMsg);
alert.setCancelable(false);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.cancel();
}
});
alert.show();
}
答案 0 :(得分:3)
您无需在onResume()
中弹出对话框。每次窗口再次聚焦时都会调用onResume()
。弹出对话框时,窗口失去焦点。取消对话框后,活动将再次聚焦并执行onResume()
并再次显示对话框。
在其他地方调用对话框,它将起作用(例如onStart()
)
答案 1 :(得分:2)
简单的解决方案是。
您必须将打开弹出的代码移动到某些位置,因为每当您输入您的活动时,您的onResume()
将被调用,并且每次弹出对话框都会打开,这是错误的。所以只需将代码移动到正确执行的地方。
注意: 致电dialog.dismiss()
而不是dialog.cancel();
答案 2 :(得分:0)
更好地尝试
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();
}
}
但是你还需要创建对话框,我无法看到你创建它的位置