Android AlertDialog点击区域外不可取消,点击返回键可以与Activity同时撤销

AndroidAlertDialog大约 1043 字

AlertDialog属性设置

点击区域外不可取消,点击返回键可以与Activity同时撤销

public void initAlertDialog() {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    View view = View.inflate(this, R.layout.dialog_view, null);
    builder.setView(view);
    final AlertDialog alertDialog = builder.create();
    view.findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            alertDialog.dismiss();
            //点击之后对话框消失,实现业务逻辑
        }
    });
    alertDialog.setCanceledOnTouchOutside(false);//对话框区域外点击无效,但是可以点击返回键
    alertDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {//监听返回键,与activity同时销毁,否则会先dismiss再finish
        @Override
        public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_BACK) {
                finish();
                dialog.dismiss();//要达到同时销毁效果,可在finish()后dismiss,如果不dismiss,dialog会leak。
            }
            return false;
        }
    });
    alertDialog.show();
}
阅读 1094 · 发布于 2019-04-10

————        END        ————

扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看换一批