引用 android的按键响应
时间:2010-08-25 来源:朱宇华
下面的是官方的bolg 觉得不错就引用了http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html
Java代码- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
- // do something on back.
- return true;
- }
- return super.onKeyDown(keyCode, event);
- }
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { // do something on back. return true; } return super.onKeyDown(keyCode, event); }
Java代码
- @Override
- public void onBackPressed() {
- // do something on back.
- return;
- }
@Override public void onBackPressed() { // do something on back. return; }
长按事件
Java代码- @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);
- }
@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代码
- @Override
- public boolean onKeyUp(int keyCode, KeyEvent event) {
- if (keyCode == KeyEvent.KEYCODE_CALL && event.isTracking()
- && !event.isCanceled()) {
- // if the call key is being released, AND we are tracking
- // it from an initial key down, AND it is not canceled,
- // then handle it.
- return true;
- }
- return super.onKeyUp(keyCode, event);
- }
@Override public boolean onKeyUp(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_CALL && event.isTracking() && !event.isCanceled()) { // if the call key is being released, AND we are tracking // it from an initial key down, AND it is not canceled, // then handle it. return true; } return super.onKeyUp(keyCode, event); }
Java代码
- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- if (keyCode == KeyEvent.KEYCODE_0) {
- // this tells the framework to start tracking for
- // a long press and eventual key up. it will only
- // do so if this is the first down (not a repeat).
- event.startTracking();
- return true;
- }
- return super.onKeyDown(keyCode, event);
- }
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_0) { // this tells the framework to start tracking for // a long press and eventual key up. it will only // do so if this is the first down (not a repeat). event.startTracking(); return true; } return super.onKeyDown(keyCode, event); }
Java代码
- @Override
- public boolean dispatchKeyEvent(KeyEvent event) {
- if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
- if (event.getAction() == KeyEvent.ACTION_DOWN
- && event.getRepeatCount() == 0) {
- // Tell the framework to start tracking this event.
- getKeyDispatcherState().startTracking(event, this);
- return true;
- } else if (event.getAction() == KeyEvent.ACTION_UP) {
- getKeyDispatcherState().handleUpEvent(event);
- if (event.isTracking() && !event.isCanceled()) {
- // DO BACK ACTION HERE
- return true;
- }
- }
- return super.dispatchKeyEvent(event);
- } else {
- return super.dispatchKeyEvent(event);
- }
- }
相关阅读 更多 +