今天阅读队友代码,调试代码中,发现对话框弹出点击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对话框。
时间: 2024-10-19 20:26:28