如何防止在对话框外单击时 AlertDialog 框被关闭?

How to prevent AlertDialog box getting dismissed when clicked outside the dialog box?

我有一个 AlertDialog 框,我用它来获取用户的输入。但是,当用户在对话框外单击时,无论用户是否输入内容,它都会被取消。

该输入对于应用程序中的进一步处理非常重要。所以我必须保留它。
只要能实现我的目的,我将非常感激不同的方法。

您只需调用方法 setCanceledOnTouchOutside(),如下所示:

dialog.setCanceledOnTouchOutside(false);

编码愉快!

这是一个简单的对话框,不能通过在其外部单击来取消:

class MainActivity : AppCompatActivity()
{
    override fun onCreate(savedInstanceState: Bundle?)
    {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // create dialog
        val builder = AlertDialog.Builder(this).apply {

            setPositiveButton("Ok",
                              DialogInterface.OnClickListener { dialog, id ->
                                  // User clicked OK button
                              })

        }

        //This will make dialog unCancelable
        val alertDialog: AlertDialog = builder.setCancelable(false).create()

        // show dialog
        alertDialog.show()
    }
}