如何让Dialog在用户按下返回键也不消失

Dialog的出现,很好的提升生了用户的用户体验,但是对于咱们程序猿来说,怎么样来好好的控制用户的误操作是个头疼问题啊,Dialog默认在按下返回键的时候会消失掉,那么如何让Dialog在用户按下返回键也不消失呢,方法是有的,毕竟Android是去过太空的,方法就是应该截取dialog的key响应事件,当dialog在前台显示的时候,keylistener首先会派发到dialog里面,在那里面监听就好了。

首先申请一个keylistener,在里面监听系统的按键,当然同样可以监听home键和其他的按键:

private OnKeyListener keylistener = new DialogInterface.OnKeyListener() {
		public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
			if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
				return true;
			} else {
				return false;
			}
		}
	};
然后在你创建Dialog的时候,将这个监听注册进去就哦了,方法如下:

AlertDialog dlg = new AlertDialog.Builder(this).create();
dlg.setOnKeyListener(keylistener);
dlg.setCancelable(false);
dlg.show();
其他的操作这里就不再累述,这样就算你按下返回,Dialog就不会消失了,PS: setCancelable(false),作用是当dialog弹出来的时候,如果触点在dialog外围,按照默认的方式 dialog将消失。如果这个设为false的话 这种情况dialog就不会消失了。  加了这一句就OK了 dialog.setCancelable(false);



你可能感兴趣的:(如何让Dialog在用户按下返回键也不消失)