今天阅读队友代码,调试代码中,发现对话框弹出点击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对话框。

05-06 04:24