我一直在四处寻找,但我找不到任何东西,所以我不知道它是否可能,但是有没有办法在关闭alertdialogs时做点什么?
在我的情况下,我将背景UI暂停,同时对话框显示为暂停屏幕。如果单击对话框中的按钮,它将运行onClick的东西,所以我在那里取消暂停,但如果他们点击对话框,它会关闭对话框,但不会运行onClick。无论如何,当他们点击一边时,有什么东西可以运行吗?谢谢!
答案 0 :(得分:12)
只要对话框消失,您就可以设置onDismissListener()
进行监听。 Docs
答案 1 :(得分:4)
您可以使用onDismissListener()
,但它是在更高的API中引入的,因此与旧的API不兼容。您可以改为使用onCancel()
。
AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
alertDialog.setTitle("My Titile");
alertDialog.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
//your logic
}
});
答案 2 :(得分:1)
唯一的方法是不使用AlertDialog.Builder而是创建一个PopupWindow子类。
可以在第37行找到一个很好的例子: https://github.com/lorensiuswlt/NewQuickAction/blob/master/src/net/londatiga/android/PopupWindows.java
答案 3 :(得分:0)
您可以使用setCanceledOnTouchOutside(false)强制用户单击取消按钮。 您也可以(如果您使用的是DialogFragment)覆盖onDetach()方法。 最后你可以设置一个解雇听众。