TabActivity子类中处理返回键事件
最近使用TabActivity,按下返回键却发现onKeyDown方法根本没有被调用,Google之,有人说需要在每个子Activity中实现相应的监听,无奈过于麻烦。
- @Override?public?boolean?onKeyDown(int?keyCode,?KeyEvent?event)?{?
- ????if?(keyCode?==?KeyEvent.KEYCODE_BACK)?{?????????exit();?
- ????????return?true;?????}?
- ????return?super.onKeyDown(keyCode,?event);?}?
?具体的原因没有去深究,最后找到了解决的方法,参考:http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html
在dispatchKeyEvent中处理Key事件,注意没有处理的键最后要调用super.dispatchKeyEvent(event);以免其他键得不到系统处理,代码如下:
- @Override?public?boolean?dispatchKeyEvent(KeyEvent?event)?{?
- ????if?(event.getKeyCode()?==?KeyEvent.KEYCODE_BACK)?{?????????if?(event.getAction()?==?KeyEvent.ACTION_DOWN?
- ????????????????&&?event.getRepeatCount()?==?0)?{?????????????exit();?
- ????????????return?true;?????????}?
- ????}?????return?super.dispatchKeyEvent(event);?
- }?
?
本文出自 “超越梦想” 博客,请务必保留此出处http://breezy.blog.51cto.com/2400264/612709