在有TabHost控件的页面,解决onKeyDown方法不能拦截KeyEvent.KEYCODE_BACK事件
2015-10-06 15:51
363 查看
在有TabHost控件的页面,
onKeyDown方法不能拦截KeyEvent.KEYCODE_BACK事件。
用dispatchKeyEvent方法可以拦截KeyEvent.KEYCODE_BACK事件,但要注意在if判断中要加一个event.getAction() == KeyEvent.ACTION_DOWN判断,因为按键有两个事件ACTION_DOWN和ACTION_UP,也就是按下和松开,如果不加这个判断,代码会执行两遍。
转载:http://blog.csdn.net/wwzqj/article/details/22882413?utm_source=tuicool
onKeyDown方法不能拦截KeyEvent.KEYCODE_BACK事件。
/* * 在有TabHost控件的页面,此方法不能拦截KeyEvent.KEYCODE_BACK事件 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { } return super.onKeyDown(keyCode, event); }
用dispatchKeyEvent方法可以拦截KeyEvent.KEYCODE_BACK事件,但要注意在if判断中要加一个event.getAction() == KeyEvent.ACTION_DOWN判断,因为按键有两个事件ACTION_DOWN和ACTION_UP,也就是按下和松开,如果不加这个判断,代码会执行两遍。
@Override public boolean dispatchKeyEvent(KeyEvent event) { if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) { /* * 注意在if判断中要加一个event.getAction() == KeyEvent.ACTION_DOWN判断, * 因为按键有两个事件ACTION_DOWN和ACTION_UP,也就是按下和松开, * 如果不加这个判断,代码会执行两遍 */ if (event.getAction() == KeyEvent.ACTION_DOWN) { } return true; } return super.dispatchKeyEvent(event); }
转载:http://blog.csdn.net/wwzqj/article/details/22882413?utm_source=tuicool
相关文章推荐
- C++文件操作详解(ifstream、ofstream、fstream)
- iOS软件开发 如何做一个选择器
- HDU ACM 4578 Transformation->段树-间隔的变化
- Ubuntu和windows文件传输共享
- python学习笔记1---关键元素1
- matlab 贝叶斯网络工具箱的安装
- linux解压war包的命令
- Hibernate:Disjunction&Conjunction构造复杂的查询条件.
- RPC通信编程
- Hibernate:Disjunction&Conjunction构造复杂的查询条件.
- Java字符串详解
- 推荐几本书(.net)
- Hibernate 调用原生态Sql语句和存储过程
- UVA_10391: Compound Words
- SQL*LOADER
- LeetCode 071 Simplify Path
- 大数据之数据挖掘理论笔记 聚类问题之K-means
- 被锁 和解锁
- 【002】有符号数据传递给无符号变量
- 带GPG签名的Git tag