Android 从onpause中关闭警报对话框生成器
我使用以下代码显示一个带有两个按钮的警报对话框。但是,如果活动暂停时对话框未退出,则会抛出错误。我知道您可以使用.disclose关闭对话框,但这是AlertDialog Builder而不是对话框。你知道怎么做吗Android 从onpause中关闭警报对话框生成器,android,Android,我使用以下代码显示一个带有两个按钮的警报对话框。但是,如果活动暂停时对话框未退出,则会抛出错误。我知道您可以使用.disclose关闭对话框,但这是AlertDialog Builder而不是对话框。你知道怎么做吗 AlertDialog.Builder alertDialog = new AlertDialog.Builder(MyActivity.this); // Setting Dialog Title alertDial
AlertDialog.Builder alertDialog = new AlertDialog.Builder(MyActivity.this);
// Setting Dialog Title
alertDialog.setTitle("Title");
// Setting Dialog Message
alertDialog.setMessage("Message");
// Setting Positive "Yes" Button
alertDialog.setPositiveButton("YES", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int which) {
//yes
dialog.cancel();
}
});
// Setting Negative "NO" Button
alertDialog.setNegativeButton("NO", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//no
dialog.cancel();
}
});
// Showing Alert Message
alertDialog.show();
您可以在显示对话框时获得AlertDialog:
dialog = alertDialog.show(); // show and return the dialog
然后在onPause中,您可以关闭AlertDialog:
@Override
protected void onPause() {
super.onPause();
if (dialog != null) {
dialog.dismiss();
}
}
需要将对话框定义为实例变量,才能使其工作:
private-AlertDialog;//实例变量
顺便说一句,AlertDialog.Builder是一个生成器,因为您可以使用类似的:
dialog.cancel呢?我发现这对我不起作用,因为alertDialog.show();返回void而不是预期的AlertDialog。无论如何,谢谢。这个答案正是最初的问题所说的不起作用。AlertDialog并不总是一个选项,因此AlertDialog.Builder是另一个选项;但是,此答案不适用于AlertDialog.Builder。@Rodrigo Mesquita您没有阅读答案。我的答案是,当您从AlertDialog.Builder显示对话框时,您会看到AlertDialog。获得AlertDialog后,可以关闭该对话框。无法关闭AlertDialog.Builder。你提到的链接正是我在回答中描述的。这是公认的答案这一事实可能表明它回答了OPs问题。@EmanuelMoecklin,几天后我再次查看了你和我的答案,我仍然认为这有点混乱,因为你初始化了“对话”对象两次。你在“顺便说一句”下面写的内容对我很有用,但上面的部分确实让我困惑。事实上,这是一个公认的答案,这意味着有些人理解它,但不是每个人都理解。我认为如果你试图简化它,你可以得到更多的选票。我不会两次初始化它。事实上,这是一个被接受的答案与ppl理解它无关,而是与它回答op的问题有关(尽管UPVOUTS可以)。我会在电脑前澄清答案。
dialog = AlertDialog.Builder(MyActivity.this)
.setTitle("Title");
.setMessage("Message")
[...]
.show();