setOnCancelListener和关闭监听器不适用于自定义对话框

时间:2019-08-05 14:19:00

标签: android dialog

我首先使用:https://github.com/javiersantos/MaterialStyledDialogs
作为我的对话框的库。

我以这种方式构建它们:

MaterialStyledDialog dialog = new MaterialStyledDialog.Builder(view.getContext())
                        .setTitle("Image information")
                        .setCustomView(customView)
                        .show();

...
我需要检查对话框何时关闭(通过在对话框外部触摸),因为我必须在AtomicBoolean

上设置false

我尝试使用:

dialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
                    @Override
                    public void onCancel(DialogInterface dialogInterface) {
                        isDialogAlreadyOpen.set(false);
                    }
                });  

onDismissListener出现在对话框上,但是它们没有被触发,对此问题没有任何想法或解决方法,喜欢检查对话框是否仍在屏幕上/已实例化?不想更改库,我对此很满意。

1 个答案:

答案 0 :(得分:0)

选中this issuethis wiki。据我了解,没有setOnCancelListenersetOnDismissListener。您需要处理好自己。如果为每个按钮提供回调,则可以实现。如

.onPositive(new MaterialDialog.SingleButtonCallback() {
    @Override
    public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
        Log.d("MaterialStyledDialogs", "Do something!");
})

onClick内,您可以设置isDialogAlreadyOpen.set(false);