android中返回键事件

来源:互联网 发布:见一叶而知秋 编辑:程序博客网 时间:2024/05/02 01:41

转自: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. }  

 

 

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
原创粉丝点击