android 对话框区域外点击无效,但是可以点击返回键

public void dialog() {
    
    
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    View view = View.inflate(this, R.layout.dialog_view_demo, 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() {
    
    
        @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();
}

猜你喜欢

转载自blog.csdn.net/weixin_37077736/article/details/125378146