Android按键长按与短按事件

来源:互联网 发布:床单淘宝店知乎 编辑:程序博客网 时间:2024/05/22 12:26

在有些按键事件中,需要区分长按,与短按的差别。多久属于长按可以自定义,一般默认在1s。


在这个长短按事件中,用到三个方法:

onKeyDown()-----处理按下去的事件

onKeyUp()-----处理按键弹起的事件

onKeyLongPress()-----处理长按事件


此处定义的一个全局变量  private boolean shortPress = false;

@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {    // TODO Auto-generated method stub    if (keyCode == KeyEvent.KEYCODE_BACK) {        return true;    }    //scanner key    if (keyCode == 280) {        if(event.getAction() == KeyEvent.ACTION_DOWN) {            event.startTracking(); //只有执行了这行代码才会调用onKeyLongPress            if (event.getRepeatCount() == 0) {                shortPress = true;//短按事件逻辑            }            return true;        }    }    return super.onKeyDown(keyCode, event);}
@Overridepublic boolean onKeyLongPress(int keyCode, KeyEvent event) {    if (keyCode == 280) {        //长按事件的逻辑        return true;    }    //Just return false because the super call does always the same (returning false)    return false;}
@Overridepublic boolean onKeyUp(int keyCode, KeyEvent event) {    if(keyCode == 280)  //此处是按键的对应键值
    {       //按键弹起事件逻辑
if(shortPress){
}else{ }    }    return super.onKeyUp(keyCode, event);}

0 0
原创粉丝点击