AlertDialog如何处理对话框视图外的点击事件

3

我有一个 AlertDialog,其中有一些按钮。通过点击它们,一些功能/方法开始工作。

但是如果用户点击AlertDialog视图之外的空白区域该怎么办?

我想在用户单击空白字段(对话框视图外部)时启动特定的函数。

enter image description here

1个回答

10

你必须使用这个 -

dialog.setCanceledOnTouchOutside(true);

那么要在对话框外单击时执行您的函数,请按如下方式进行 -

dialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
    @Override
    public void onCancel(DialogInterface dialog) {
        // dialog dismisses
        // Do your function here
    }
});

你能帮我吗?如果我想在执行完我的函数后再关闭对话框,该怎么办?我想我必须重写 dismiss 函数,但作为一名新开发者,我不确定如何正确地实现它。 - Pavel Malinovskij
最初设置对话框dialog.setCanceledOnTouchOutside(false); - Anupam
然后调用相同的dialog.setOnCancelListener,里面你将调用想要执行的函数,在该方法的成功或失败中,调用dialog.dismiss()。 - Anupam
抱歉,我以为解决方案会很简单 :( 我会接受你的答案,但如果你能帮我解决这个问题,那就太好了 :) - Pavel Malinovskij
我正在处理中,请给我一些时间。 - Anupam
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接