当前位置: 代码迷 >> Android >> android之对话框存在时,有时候无法捕获back键
  详细解决方案

android之对话框存在时,有时候无法捕获back键

热度:3   发布时间:2016-04-28 04:55:00.0
android之对话框存在时,有时无法捕获back键
见博客文章
http://blog.csdn.net/wangpp2009/article/details/7106906


1)给对话框加监听,代码如下:

dialog.setOnKeyListener(new OnKeyListener()            {                @Override                public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event)                {                    if(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount()==0)                    {                        dialog.dismiss();                    }                    return false;                }            });


(2)捕捉back键,重写dispatchKeyEvent()方法,注意不是onKeyDown()方法。代码如下:

public boolean dispatchKeyEvent(KeyEvent event)    {                switch(event.getKeyCode())        {        case KeyEvent.KEYCODE_BACK:                       clearData();                        break;        default:            break;        }        return super.dispatchKeyEvent(event);    }


通过对话框主动监听back键,这样才能避免对话框存在时无法捕获back键。
  相关解决方案