3

我一直在环顾四周,找不到任何东西,所以我不知道它是否可能,但是有没有办法为 alertdialogs 做一些关闭的事情?

在我的情况下,当对话框作为暂停屏幕启动时,我暂停了后台 UI。如果您单击对话框中的按钮,它将运行 onClick 内容,因此我将其取消暂停,但如果他们单击对话框,它将关闭对话框但不运行 onClick。当他们点击到一边时,有什么东西可以运行吗?谢谢!

4

4 回答 4

16

您可以设置一个onDismissListener()在对话消失时收听。文档

于 2012-10-18T15:44:22.010 回答
6

您可以使用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
        }
    });
于 2015-05-15T20:57:02.477 回答
1

这样做的唯一方法是不使用 AlertDialog.Builder 而是创建一个 PopupWindow 子类。

可以在第 37 行找到一个很好的例子: https ://github.com/lorensiuswlt/NewQuickAction/blob/master/src/net/londatiga/android/PopupWindows.java

于 2012-10-18T15:49:39.557 回答
0

您可以使用 setCanceledOnTouchOutside(false) 强制用户单击取消按钮。您也可以(如果您使用 DialogFragment)覆盖 onDetach() 方法。最后你可以设置一个解雇监听器。

于 2012-10-18T15:50:35.373 回答