2016-09-14 3 views
1

Chromebook 용 Android 앱을 준비하고 실제 키보드로 사용할 때 "Enter"(keyEvent 66)와 "Shift + Enter"를 받기 위해 EditText를 구별하고 싶습니다. keyEvent 66)을 물리적 키보드에서 제거합니다. 나는 액티비티에서 dispatchKeyEvent (KeyEvent 이벤트)와 같은 다양한 솔루션을 시도했다.Android의 실제 키보드에서 Shift + Enter 키 입력

  • 그러나 event.getModifiers()는 event.getMetaState()처럼 항상 0을 반환합니다. keyEvent.isShiftPressed()는 항상 false를 반환합니다.
  • 동일한 결과가있는 활동의 onKeyDown (int keyCode, KeyEvent keyEvent). keyEvent.isShiftPressed()는 항상 false도 반환합니다.

나는 방법 중 하나) (onKeyUp에 사용하여 발견하지 않은, onKeyPreIme(), 또는 editText.addTextChangedListener와 editText.setOnKeyListener (...) (새 TextWatcher() {...}). Enter 이벤트를 얻는 데 문제가 없었지만 Shift + Enter는 Enter 이벤트와 구별 할 수 없었습니다. 그래서 내 질문은 이것이다 : 다른 안드로이드 Dev가 물리적 키보드에서 Shift + Enter를 올바르게 캡처하는 방법을 찾았습니까?

답변

1

나는 똑같은 문제가 있었는데 "Shift"down 이벤트와 "shift"이벤트를 감지하고 그것을 저장하는 부울을 정의함으로써 해결했습니다. 이 코드는 내 코드입니다.

+0

응답 해 주셔서 감사합니다.이 솔루션이 유일한 실제 가능성 인 것 같습니다. –

관련 문제