一 编写目的
随着android版本的升级,我们对物理按键需求越来越少了,以使用最为广泛的android设备—手机来说,一般现存的就三个按钮,menu、home、back。而在4.0以后,系统将home键的触发事件给干掉了,传不到应用层了,我们开发者能控制的按键是越来越少了。但是,还是有很多行业使用的android设备需要有按键,以便让操作变得更加快捷,就像我们经常可以看到的pos机,pda盘点枪等等。所以,按键对于处于某些行业开发的兄弟来说,还是不可或缺的。
二 响应按键的函数
这里我主要介绍些常用的哈。
2.1 onKeyDown/onKeyUp/onBackPressed
这三个按键监听的函数都用的比较普遍,其中:
a)onKeyDown:这个函数是监听按键按下时状态。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
log("onKeyDown");
return super.onKeyDown(keyCode, event);
}
这个函数入参为keycode和keyevent。其中keycode为按下按钮对应的keycode值(我们可以通过这个获取对应按键的code参照表),也可通过event.getKeyCode()获取按键的keycode。event为按键事件,其中包含多种属性,比如code、action等。
这个函数的返回值为boolean型。api上是这样描述的:Return true
to prevent this event from being propagated further, orfalse
to indicate that you have not handled this event and it should continue to be propagated.意思是说如果返回true,则表示你自己自定义了按键事件处理,按下事件到此结束,不会再调用系统的事件。如果返回false,则系统的事件照样会触发。这样我们就可以自己实现onKeyDown事件来达到自己的目的。例如:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode