Android键盘响应函数
来源:互联网 发布:nba2k14数据修改器 编辑:程序博客网 时间:2024/05/16 15:18
- @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 void onBackPressed() {
- // do something on back.
- return;
- }
- @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 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 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 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);
- }
- }
复制代码