dialog弹出,点击back按键无法返回问题解决

今天阅读队友代码,调试代码中,发现对话框弹出点击back按键无法返回问题解决。

代码如下:

/**
     * 单个按钮没有标题的弹框
     * 
     * @param context
     * @param content内容
     * @param btnString按钮名称
     * @param dia按钮事件
     *            ,没有传null
     */
    public static void showDialogConfirm(Context context, String content, String btnString, final dialogOnClick dia) {
        final AlertDialog dialog = new AlertDialog.Builder(context).create();
        dialog.setCanceledOnTouchOutside(false);
        // dialog.setCancelable(false);
        dialog.show();
        Window window = dialog.getWindow();
        window.setContentView(layout.dialog_account_passed);
        TextView txt_content = (TextView) window.findViewById(R.id.msg);
        txt_content.setText(content);
        Button btn_ok = (Button) window.findViewById(R.id.btn_confirm);
        btn_ok.setText(btnString);
        btn_ok.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (dia != null) {
                    dia.showDialogOnClick();
                }
                dialog.dismiss();
            }

        });
    }

其中代码

dialog.setCancelable(false);

如果点击back无法dismiss dialog,正确的姿势是:

 dialog.setCanceledOnTouchOutside(false);

这样就能保证dialog在点击back可以dismiss对话框。

原文地址:https://www.cnblogs.com/androidsuperman/p/4672649.html