android中返回键事件

转自:http://czy584521.iteye.com/blog/1062808

在android中重写父类的onkeydown方法,就可以更方便的操作了。

Android代码 复制代码  收藏代码
  1. @Override  
  2. public boolean onKeyDown(int keyCode, KeyEvent event) {  
  3. // TODO Auto-generated method stub  
  4. if(keyCode==KeyEvent.KEYCODE_BACK&&event.getRepeatCount()==0){  
  5.     //需要处理  
  6. }  
  7.     return false;  
  8. }  

 长按事件

Java代码 复制代码  收藏代码
  1. @Override  
  2. public boolean onKeyLongPress(int keyCode, KeyEvent event) {  
  3.     if (keyCode == KeyEvent.KEYCODE_CALL) {  
  4.         // a long press of the call key.  
  5.         // do our work, returning true to consume it. by  
  6.         // returning true, the framework knows an action has  
  7.         // been performed on the long press, so will set the  
  8.         // canceled flag for the following up event.  
  9.         return true;  
  10.     }  
  11.     return super.onKeyLongPress(keyCode, event);  
  12. }  
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_CALL) {
        // a long press of the call key.
        // do our work, returning true to consume it. by
        // returning true, the framework knows an action has
        // been performed on the long press, so will set the
        // canceled flag for the following up event.
        return true;
    }
    return super.onKeyLongPress(keyCode, event);
}

 

 

Java代码 复制代码  收藏代码
  1. @Override  
  2. public boolean onKeyUp(int keyCode, KeyEvent event) {  
  3.     if (keyCode == KeyEvent.KEYCODE_CALL && event.isTracking()  
  4.             && !event.isCanceled()) {  
  5.         // if the call key is being released, AND we are tracking  
  6.         // it from an initial key down, AND it is not canceled,  
  7.         // then handle it.  
  8.         return true;  
  9.     }  
  10.     return super.onKeyUp(keyCode, event);  
  11. }  
  12.   
  13. @Override  
  14. public boolean onKeyDown(int keyCode, KeyEvent event) {  
  15.     if (keyCode == KeyEvent.KEYCODE_0) {  
  16.         // this tells the framework to start tracking for  
  17.         // a long press and eventual key up. it will only  
  18.         // do so if this is the first down (not a repeat).  
  19.         event.startTracking();  
  20.         return true;  
  21.     }  
  22.     return super.onKeyDown(keyCode, event);  
  23. }  
  24.   
  25. @Override  
  26. public boolean dispatchKeyEvent(KeyEvent event) {  
  27.     if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {  
  28.         if (event.getAction() == KeyEvent.ACTION_DOWN  
  29.                 && event.getRepeatCount() == 0) {  
  30.   
  31.             // Tell the framework to start tracking this event.  
  32.             getKeyDispatcherState().startTracking(event, this);  
  33.             return true;  
  34.   
  35.         } else if (event.getAction() == KeyEvent.ACTION_UP) {  
  36.             getKeyDispatcherState().handleUpEvent(event);  
  37.             if (event.isTracking() && !event.isCanceled()) {  
  38.   
  39.                 // DO BACK ACTION HERE  
  40.                 return true;  
  41.   
  42.             }  
  43.         }  
  44.         return super.dispatchKeyEvent(event);  
  45.     } else {  
  46.         return super.dispatchKeyEvent(event);  
  47.     }  
  48. }  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值