android.view.KeyEvent#ACTION_DOWN源码实例Demo

下面列出了android.view.KeyEvent#ACTION_DOWN 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: ExFilePicker   文件: ExFilePickerActivity.java
@Override
public boolean dispatchKeyEvent(@NonNull KeyEvent event) {
    if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
        if (event.getAction() == KeyEvent.ACTION_UP) {
            if (mIsMultiChoiceModeEnabled) {
                setMultiChoiceModeEnabled(false);
                setupOkButtonVisibility();
            } else {
                if (isTopDirectory(mCurrentDirectory)) {
                    finish();
                } else {
                    readUpDirectory();
                }
            }
        } else if (event.getAction() == KeyEvent.ACTION_DOWN && (event.getFlags() & KeyEvent.FLAG_LONG_PRESS) == KeyEvent.FLAG_LONG_PRESS) {
            finish();
        }
        return true;
    }
    return super.dispatchKeyEvent(event);
}
 
源代码2 项目: DoubleViewPager   文件: VerticalViewPager.java
/**
 * You can call this function yourself to have the scroll view perform
 * scrolling from a key event, just as if the event had been dispatched to
 * it by the view hierarchy.
 *
 * @param event The key event to execute.
 * @return Return true if the event was handled, else false.
 */
public boolean executeKeyEvent(KeyEvent event) {
    boolean handled = false;
    if (event.getAction() == KeyEvent.ACTION_DOWN) {
        switch (event.getKeyCode()) {
            case KeyEvent.KEYCODE_DPAD_LEFT:
                handled = arrowScroll(FOCUS_LEFT);
                break;
            case KeyEvent.KEYCODE_DPAD_RIGHT:
                handled = arrowScroll(FOCUS_RIGHT);
                break;
            case KeyEvent.KEYCODE_TAB:
                if (Build.VERSION.SDK_INT >= 11) {
                    // The focus finder had a bug handling FOCUS_FORWARD and FOCUS_BACKWARD
                    // before Android 3.0. Ignore the tab key on those devices.
                    if (KeyEventCompat.hasNoModifiers(event)) {
                        handled = arrowScroll(FOCUS_FORWARD);
                    } else if (KeyEventCompat.hasModifiers(event, KeyEvent.META_SHIFT_ON)) {
                        handled = arrowScroll(FOCUS_BACKWARD);
                    }
                }
                break;
        }
    }
    return handled;
}
 
源代码3 项目: DoubleViewPager   文件: HorizontalViewPager.java
/**
 * You can call this function yourself to have the scroll view perform
 * scrolling from a key event, just as if the event had been dispatched to
 * it by the view hierarchy.
 *
 * @param event The key event to execute.
 * @return Return true if the event was handled, else false.
 */
public boolean executeKeyEvent(KeyEvent event) {
    boolean handled = false;
    if (event.getAction() == KeyEvent.ACTION_DOWN) {
        switch (event.getKeyCode()) {
            case KeyEvent.KEYCODE_DPAD_LEFT:
                handled = arrowScroll(FOCUS_LEFT);
                break;
            case KeyEvent.KEYCODE_DPAD_RIGHT:
                handled = arrowScroll(FOCUS_RIGHT);
                break;
            case KeyEvent.KEYCODE_TAB:
                if (Build.VERSION.SDK_INT >= 11) {
                    // The focus finder had a bug handling FOCUS_FORWARD and FOCUS_BACKWARD
                    // before Android 3.0. Ignore the tab key on those devices.
                    if (KeyEventCompat.hasNoModifiers(event)) {
                        handled = arrowScroll(FOCUS_FORWARD);
                    } else if (KeyEventCompat.hasModifiers(event, KeyEvent.META_SHIFT_ON)) {
                        handled = arrowScroll(FOCUS_BACKWARD);
                    }
                }
                break;
        }
    }
    return handled;
}
 
源代码4 项目: ankihelper   文件: VerticalViewPager.java
/**
 * You can call this function yourself to have the scroll view perform
 * scrolling from a key event, just as if the event had been dispatched to
 * it by the view hierarchy.
 *
 * @param event The key event to execute.
 * @return Return true if the event was handled, else false.
 */
public boolean executeKeyEvent(KeyEvent event) {
    boolean handled = false;
    if (event.getAction() == KeyEvent.ACTION_DOWN) {
        switch (event.getKeyCode()) {
            case KeyEvent.KEYCODE_DPAD_LEFT:
                handled = arrowScroll(FOCUS_LEFT);
                break;
            case KeyEvent.KEYCODE_DPAD_RIGHT:
                handled = arrowScroll(FOCUS_RIGHT);
                break;
            case KeyEvent.KEYCODE_TAB:
                if (Build.VERSION.SDK_INT >= 11) {
                    // The focus finder had a bug handling FOCUS_FORWARD and FOCUS_BACKWARD
                    // before Android 3.0. Ignore the tab key on those devices.
                    if (KeyEvent.metaStateHasNoModifiers(event.getMetaState())) {
                        handled = arrowScroll(FOCUS_FORWARD);
                    } else if (KeyEvent.metaStateHasNoModifiers(event.getMetaState())) {
                        handled = arrowScroll(FOCUS_BACKWARD);
                    }
                }
                break;
        }
    }
    return handled;
}
 
源代码5 项目: RxAndroidBootstrap   文件: EditTextUtil.java
public static View.OnKeyListener getSoftInPutHideListener(final Context context) {

        View.OnKeyListener onKeyList = new View.OnKeyListener() {

            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) {
                    EditTextUtil.hideSoftInPut((EditText) v, context);
                    return true;
                }
                return false;
            }
        };

        return onKeyList;
    }
 
源代码6 项目: Mp3Cutter   文件: MainActivity.java
/**
 * 监听后退退出
 *
 * @param keyCode 按键码
 * @param event   时间
 * @return 是否处理完成
 */
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
        if ((System.currentTimeMillis() - time > 1000)) {
            Toast.makeText(this, getResources().getString(R.string.main_finish_tip),
                    Toast.LENGTH_SHORT).show();
            time = System.currentTimeMillis();
        } else {
            moveTaskToBack(false);
        }
        return true;
    }
    else {
        return super.onKeyDown(keyCode, event);
    }
}
 
源代码7 项目: appcan-android   文件: CustomViewAbove.java
/**
 * You can call this function yourself to have the scroll view perform
 * scrolling from a key event, just as if the event had been dispatched to
 * it by the view hierarchy.
 *
 * @param event The key event to execute.
 * @return Return true if the event was handled, else false.
 */
public boolean executeKeyEvent(KeyEvent event) {
    boolean handled = false;
    if (event.getAction() == KeyEvent.ACTION_DOWN) {
        switch (event.getKeyCode()) {
            case KeyEvent.KEYCODE_DPAD_LEFT:
                handled = arrowScroll(FOCUS_LEFT);
                break;
            case KeyEvent.KEYCODE_DPAD_RIGHT:
                handled = arrowScroll(FOCUS_RIGHT);
                break;
            case KeyEvent.KEYCODE_TAB:
                if (Build.VERSION.SDK_INT >= 11) {
                    // The focus finder had a bug handling FOCUS_FORWARD and FOCUS_BACKWARD
                    // before Android 3.0. Ignore the tab key on those devices.
                    if (event.hasNoModifiers()) {
                        handled = arrowScroll(FOCUS_FORWARD);
                    } else if (event.hasModifiers(KeyEvent.META_SHIFT_ON)) {
                        handled = arrowScroll(FOCUS_BACKWARD);
                    }
                }
                break;
        }
    }
    return handled;
}
 
源代码8 项目: android-chromium   文件: ImeAdapter.java
boolean translateAndSendNativeEvents(KeyEvent event) {
    if (mNativeImeAdapterAndroid == 0) return false;

    int action = event.getAction();
    if (action != KeyEvent.ACTION_DOWN &&
        action != KeyEvent.ACTION_UP) {
        // action == KeyEvent.ACTION_MULTIPLE
        // TODO(bulach): confirm the actual behavior. Apparently:
        // If event.getKeyCode() == KEYCODE_UNKNOWN, we can send a
        // composition key down (229) followed by a commit text with the
        // string from event.getUnicodeChars().
        // Otherwise, we'd need to send an event with a
        // WebInputEvent::IsAutoRepeat modifier. We also need to verify when
        // we receive ACTION_MULTIPLE: we may receive it after an ACTION_DOWN,
        // and if that's the case, we'll need to review when to send the Char
        // event.
        return false;
    }
    mViewEmbedder.onImeEvent(false);
    return nativeSendKeyEvent(mNativeImeAdapterAndroid, event, event.getAction(),
            getModifiers(event.getMetaState()), event.getEventTime(), event.getKeyCode(),
                            event.isSystem(), event.getUnicodeChar());
}
 
源代码9 项目: android-chromium   文件: AwContents.java
private boolean isDpadEvent(KeyEvent event) {
    if (event.getAction() == KeyEvent.ACTION_DOWN) {
        switch (event.getKeyCode()) {
            case KeyEvent.KEYCODE_DPAD_CENTER:
            case KeyEvent.KEYCODE_DPAD_DOWN:
            case KeyEvent.KEYCODE_DPAD_UP:
            case KeyEvent.KEYCODE_DPAD_LEFT:
            case KeyEvent.KEYCODE_DPAD_RIGHT:
                return true;
        }
    }
    return false;
}
 
源代码10 项目: JianDan   文件: MainActivity.java
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK
            && event.getAction() == KeyEvent.ACTION_DOWN) {
        if ((System.currentTimeMillis() - exitTime) > 2000) {
            ShowToast.Short("再按一次退出程序");
            exitTime = System.currentTimeMillis();
        } else {
            finish();
        }
        return true;
    }

    return super.onKeyDown(keyCode, event);
}
 
源代码11 项目: leafpicrevived   文件: CustomPlayBackController.java
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    if (player == null || event.getAction() != KeyEvent.ACTION_DOWN) {
        return super.dispatchKeyEvent(event);
    }
    switch (event.getKeyCode()) {
        case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
        case KeyEvent.KEYCODE_DPAD_RIGHT:
            fastForward();
            break;
        case KeyEvent.KEYCODE_MEDIA_REWIND:
        case KeyEvent.KEYCODE_DPAD_LEFT:
            rewind();
            break;
        case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
            player.setPlayWhenReady(!player.getPlayWhenReady());
            break;
        case KeyEvent.KEYCODE_MEDIA_PLAY:
            player.setPlayWhenReady(true);
            break;
        case KeyEvent.KEYCODE_MEDIA_PAUSE:
            player.setPlayWhenReady(false);
            break;
        case KeyEvent.KEYCODE_MEDIA_NEXT:
            next();
            break;
        case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
            previous();
            break;
        default:
            return false;
    }
    show();
    return true;
}
 
源代码12 项目: iSCAU-Android   文件: Main.java
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){
        if((System.currentTimeMillis()-exitTime) > 2000){
            Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();
            exitTime = System.currentTimeMillis();
        }
        else{
            MobclickAgent.onKillProcess(this);
            System.exit(0);
        }
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
 
源代码13 项目: ForgePE   文件: TextInputProxyEditTextbox.java
@Override
public boolean sendKeyEvent(KeyEvent event) {
    if (this.textbox.getText().length() == 0 && event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_DEL) {
        if (TextInputProxyEditTextbox.this._mcpeKeyWatcher != null) {
            TextInputProxyEditTextbox.this._mcpeKeyWatcher.onDeleteKeyPressed();
        }
        return false;
    }
    return super.sendKeyEvent(event);
}
 
源代码14 项目: coderfun   文件: WebAcitivity.java
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (event.getAction() == KeyEvent.ACTION_DOWN) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            if (webView.canGoBack()) {
                webView.goBack();
            } else {
                finish();
            }
            return true;
        }
    }
    return super.onKeyDown(keyCode, event);
}
 
源代码15 项目: talkback   文件: ProcessorAccessibilityHints.java
@Override
public boolean onKeyEvent(KeyEvent event, EventId eventId) {
  if (event.getAction() == KeyEvent.ACTION_DOWN) {
    // Mainly to prevent hints from being activated when typing, attempting to perform
    // shortcuts, etc. Doesn't cancel in-progress hint, user can use normal actions to
    // cancel (e.g. Ctrl).
    cancelA11yHint();
  }
  return false;
}
 
源代码16 项目: EditTag   文件: MEditText.java
@Override
public boolean sendKeyEvent(KeyEvent event) {
    if (event.getAction() == KeyEvent.ACTION_DOWN
            && event.getKeyCode() == KeyEvent.KEYCODE_DEL) {
        // Un-comment if you wish to cancel the backspace:
        // return false;
    }
    return super.sendKeyEvent(event);
}
 
源代码17 项目: Search-View-Layout   文件: SearchViewLayout.java
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN &&
            isExpanded()) {
        boolean keyboardHidden = Utils.hideInputMethod(v);
        if (keyboardHidden) return true;
        collapse();
        return true;
    }
    return false;
}
 
源代码18 项目: PowerFileExplorer   文件: CHMFrag.java
public boolean onKeyDown(int keyCode, KeyEvent event) {
      if (event.getAction() == KeyEvent.ACTION_DOWN) {
          switch (keyCode) {
              case KeyEvent.KEYCODE_BACK:
                  if (webview.canGoBack()) {
                      webview.goBack();
                  }
                  return true;
          }
      }
      //return super.onKeyDown(keyCode, event);
return false;
  }
 
源代码19 项目: Noyze   文件: VolumePanel.java
@Override
public boolean onKey(View v, final int keyCode, KeyEvent event) {
       LOGI("VolumePanel", "onKey(" + keyCode + ")");

       // Don't handle ANYTHING when a call is in progress!
       if (mCallState != TelephonyManager.CALL_STATE_IDLE)
           return super.onKey(v, keyCode, event);

	switch (keyCode) {
		// Handle the DOWN + MULTIPLE action (holding down).
           case KeyEvent.KEYCODE_VOLUME_UP:
           case KeyEvent.KEYCODE_VOLUME_DOWN:
           	final int adjust = ((keyCode == KeyEvent.KEYCODE_VOLUME_UP) ?
                           	 AudioManager.ADJUST_RAISE : AudioManager.ADJUST_LOWER);
           	switch (event.getAction()) {
                   case KeyEvent.ACTION_DOWN:
                       // If another key was pressed while holding on to
                       // one volume key, we'll need to abort mission.
                       if (mKeyCodeDown != 0) {
                           mIgnoreNextKeyUp = true;
                           mHandler.removeMessages(MSG_VOLUME_LONG_PRESS);
                           return super.onKey(v, keyCode, event);
                       }

                       mKeyCodeDown = event.getKeyCode();
                       mKeyTimeDown = System.currentTimeMillis();
                       event.startTracking();

                       // NOTE: we'll allow long press events if we've set an action.
                       boolean callIdle = (mCallState == TelephonyManager.CALL_STATE_IDLE);
                       if (!noLongPress || hasLongPressAction(keyCode)) {
                           mHandler.sendMessageDelayed(mHandler.obtainMessage(
                                   MSG_VOLUME_LONG_PRESS, event), ((callIdle && hasLongPressAction(keyCode)) ?
                                   mLongPressTimeout : mLongPressTimeout / 2));
                       }
                       break;
           		case KeyEvent.ACTION_UP:
           		case KeyEvent.ACTION_MULTIPLE:
                       boolean hasLongPress = mHandler.hasMessages(MSG_VOLUME_LONG_PRESS);
                       mHandler.removeMessages(MSG_VOLUME_LONG_PRESS);
                       boolean ignoreNextKeyUp = mIgnoreNextKeyUp;
                       mIgnoreNextKeyUp = false;
                       mKeyCodeDown = 0;

                       // We've been told to let this one go.
                       if (ignoreNextKeyUp || event.isCanceled()) {
                           mKeyTimeDown = 0;
                           return true;
                       }

                       if ((hasLongPress || noLongPress) && (System.currentTimeMillis() -
                               mKeyTimeDown) < mLongPressTimeout) {
                           mVolumeDirty = true;
                           mKeyTimeDown = 0;
                           if (!firstReveal || (firstReveal && isShowing())) {
                               adjustVolume(adjust);
                               show();
                           } else {
                               reveal();
                           }
                       }
           			break;
           	}
               break;
           case KeyEvent.KEYCODE_VOLUME_MUTE:
               switch (event.getAction()) {
                   case KeyEvent.ACTION_UP:
                       boolean mute = isMuted(STREAM_RING);
                       mAudioManager.setStreamMute(STREAM_RING, !mute);
                       mAudioManager.setStreamMute(STREAM_NOTIFICATION, !mute);
                       mVolumeDirty = true;
                       show();
                       break;
               }
               break;
       }

       return super.onKey(v, keyCode, event);
}
 
源代码20 项目: gdx-controllerutils   文件: AndroidControllers.java
@Override
public boolean onKey (View view, int keyCode, KeyEvent keyEvent) {
	if (ignoreNoGamepadButtons && !keyEvent.isGamepadButton(keyCode)) {
		return false;
	}
	AndroidController controller = controllerMap.get(keyEvent.getDeviceId());
	if(controller != null) {
		if(controller.getButton(keyCode) && keyEvent.getAction() == KeyEvent.ACTION_DOWN) {
			return true;
		}
		synchronized(eventQueue) {
			AndroidControllerEvent event = eventPool.obtain();
			event.controller = controller;
			if(keyEvent.getAction() == KeyEvent.ACTION_DOWN) {
				if (keyCode == KeyEvent.KEYCODE_DPAD_UP) {
					event.type = AndroidControllerEvent.POV;
					controller.pov |= 0x00000001;
					event.povDirection = controller.getPov(0);
				} else if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) {
					event.type = AndroidControllerEvent.POV;
					controller.pov |= 0x00000010;
					event.povDirection = controller.getPov(0);
				} else if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) {
					event.type = AndroidControllerEvent.POV;
					controller.pov |= 0x00000100;
					event.povDirection = controller.getPov(0);
				} else if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) {
					event.type = AndroidControllerEvent.POV;
					controller.pov |= 0x00001000;
					event.povDirection = controller.getPov(0);
				} else {
					event.type = AndroidControllerEvent.BUTTON_DOWN;
					event.code = keyCode;
				}
			} else {
				if (keyCode == KeyEvent.KEYCODE_DPAD_UP) {
					event.type = AndroidControllerEvent.POV;
					controller.pov &= 0x00001110;
					event.povDirection = controller.getPov(0);
				} else if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) {
					event.type = AndroidControllerEvent.POV;
					controller.pov &= 0x00001101;
					event.povDirection = controller.getPov(0);
				} else if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) {
					event.type = AndroidControllerEvent.POV;
					controller.pov &= 0x00001011;
					event.povDirection = controller.getPov(0);
				} else if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) {
					event.type = AndroidControllerEvent.POV;
					controller.pov &= 0x00000111;
					event.povDirection = controller.getPov(0);
				} else {
					event.type = AndroidControllerEvent.BUTTON_UP;
					event.code = keyCode;
				}
			}
			eventQueue.add(event);
		}
		if (keyCode == KeyEvent.KEYCODE_BACK && !Gdx.input.isCatchBackKey()) {
			return false;
		}
		return true;
	} else {
		return false;
	}
}
 
 方法所在类
 同类方法