AlertDialog OnClose事件Android

时间:2012-10-18 15:39:01

标签: java android alertdialog

我一直在四处寻找,但我找不到任何东西,所以我不知道它是否可能,但是有没有办法在关闭alertdialogs时做点什么?

在我的情况下,我将背景UI暂停,同时对话框显示为暂停屏幕。如果单击对话框中的按钮,它将运行onClick的东西,所以我在那里取消暂停,但如果他们点击对话框,它会关闭对话框,但不会运行onClick。无论如何,当他们点击一边时,有什么东西可以运行吗?谢谢!

4 个答案:

答案 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()方法。 最后你可以设置一个解雇听众。