如何防止警报对话框被后退按钮关闭

Bat*_*han 18 android android-widget android-layout

我有一个这样的警告对话框:

    AlertDialog.Builder oyunaBaslaDialog = new AlertDialog.Builder(this);
    oyunaBaslaDialog.setMessage("A Tak?m?");
    oyunaBaslaDialog.setNeutralButton("Ba?la!",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface arg0, int arg1) {
                    oyunOyna();
                }
            });
    oyunaBaslaDialog.show();
Run Code Online (Sandbox Code Playgroud)

该对话框显示在onCreate方法中.我希望它只是被它上面的按钮关闭.但硬件后退按钮也可以关闭此对话框而不执行对话框操作.

我不希望后退按钮关闭此对话框,我该怎么办?

Jac*_*Ras 58

使用Dialog.setCancelable():

设置是否可以使用BACK键取消此对话框.

在您的代码中,这将是:

oyunaBaslaDialog.setCancelable(false);
Run Code Online (Sandbox Code Playgroud)

  • 如果对话框在DialogFragment中,则需要为DialogFragment调用setCancelable(false),否则Back将关闭片段.链接到文档:http://developer.android.com/reference/android/app/DialogFragment.html#setCancelable%28boolean%29 (8认同)

Com*_*Man 10

实现setOnKeyListener并捕获KeyEvent.KEYCODE_BACK.如果在此方法中返回true,则对话框不会关闭.

  • 这样,当用户按下Dialog上的按钮时,您可以实际执行任何操作. (4认同)