Chinaunix首页 | 论坛 | 博客
  • 博客访问: 176882
  • 博文数量: 43
  • 博客积分: 1428
  • 博客等级: 上尉
  • 技术积分: 410
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-02 09:33
文章分类

全部博文(43)

文章存档

2014年(3)

2013年(3)

2011年(1)

2010年(36)

分类: Java

2010-08-25 13:27:46

下面的是官方的bolg 觉得不错就引用了http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html

Java代码
  1. @Override  
  2. public boolean onKeyDown(int keyCode, KeyEvent event)  {  
  3.     if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {  
  4.         // do something on back.  
  5.         return true;  
  6.     }  
  7.   
  8.     return super.onKeyDown(keyCode, event);  
  9. }  

 

Java代码
  1. @Override  
  2. public void onBackPressed() {  
  3. // do something on back.  
  4. return;  
  5. }  

 

长按事件

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. }  

 

Java代码
  1. @Override  
  2. public boolean onKeyDown(int keyCode, KeyEvent event)  {  
  3.     if (keyCode == KeyEvent.KEYCODE_0) {  
  4.         // this tells the framework to start tracking for  
  5.         // a long press and eventual key up.  it will only  
  6.         // do so if this is the first down (not a repeat).  
  7.         event.startTracking();  
  8.         return true;  
  9.     }  
  10.     return super.onKeyDown(keyCode, event);  
  11. }  

 

Java代码
  1. @Override  
  2. public boolean dispatchKeyEvent(KeyEvent event) {  
  3.     if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {  
  4.         if (event.getAction() == KeyEvent.ACTION_DOWN  
  5.                 && event.getRepeatCount() == 0) {  
  6.   
  7.             // Tell the framework to start tracking this event.  
  8.             getKeyDispatcherState().startTracking(event, this);  
  9.             return true;  
  10.   
  11.         } else if (event.getAction() == KeyEvent.ACTION_UP) {  
  12.             getKeyDispatcherState().handleUpEvent(event);  
  13.             if (event.isTracking() && !event.isCanceled()) {  
  14.   
  15.                 // DO BACK ACTION HERE  
  16.                 return true;  
  17.   
  18.             }  
  19.         }  
  20.         return super.dispatchKeyEvent(event);  
  21.     } else {  
  22.         return super.dispatchKeyEvent(event);  
  23.     }  

阅读(1549) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~