我有一个正在使用主题的活动。对话框样式,使其成为另一个活动上方的浮动窗口。但是,当我在对话框窗口外(在后台活动上)单击时,对话框关闭。我怎样才能阻止这种行为?


当前回答

        alert.setCancelable(false);
        alert.setCanceledOnTouchOutside(false);

我想这对你有帮助。这对我很管用

其他回答

将对话框可取消设置为false就足够了,并且您可以在警报对话框外触摸或单击后退按钮将使警报对话框消失。所以就用这个吧:

setCancelable(假)

另一个函数不再需要了: dialog.setCanceledOnTouchOutside(假);

如果你正在创建一个临时对话框,并想把这行代码放在那里,下面是一个例子:

new AlertDialog.Builder(this)
                        .setTitle("Trial Version")
                        .setCancelable(false)
                        .setMessage("You are using trial version!")
                        .setIcon(R.drawable.time_left)
                        .setPositiveButton(android.R.string.yes, null).show();

为了防止对话框在返回键按下时被取消,使用这个

dialog.setCancelable(false);

为了防止对话框在外部触摸时消失,使用这个

 dialog.setCanceledOnTouchOutside(false);

在jetpack组合中,使用遣散onclickoutside = false属性来防止关闭。

    AlertDialog(
        title = {
            Text("Title")
        },
        text = {
            Text(text = name)
        },
        onDismissRequest = onDismiss,
        confirmButton = {
            TextButton(onClick = onDismiss ) {
                Text("Yes")
            }
        },
        dismissButton = {
            TextButton(onClick = onDismiss ) {
                Text("Cancel")
            }
        },
        properties = DialogProperties(
            dismissOnClickOutside = false
        )
    )

}

简单地说,

alertDialog.setCancelable(false);

防止用户在对话框外单击。

这是对你所有问题的完美回答....希望你喜欢用Android编程

new AlertDialog.Builder(this)
            .setTitle("Akshat Rastogi Is Great")
            .setCancelable(false)
            .setMessage("I am the best Android Programmer")
            .setPositiveButton("I agree", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();

                }
            })
            .create().show();