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

来源:互联网 发布:编辑pdf的软件 编辑:程序博客网 时间:2024/05/18 18:00

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);

0 0
原创粉丝点击