Hayden's Archive

[Android] 키보드 이벤트(Keyboard Event) 본문

Study/ETC

[Android] 키보드 이벤트(Keyboard Event)

_hayden 2021. 6. 5. 18:24

참고 : 한국방송통신대학교 모바일앱프로그래밍 교재( https://press.knou.ac.kr/goods/textBookView.do?condCmdtCode=9788920035999&condLscValue=001&condYr=&condSmst= )

 


키보드 이벤트 처리

1) 사용자가 키보드를 누르면 포커스를 가진 View의 onKeyDown 메서드가 호출되며, View 클래스의 자식 클래스들은 onKeyDown 메서드를 재정의하여 키입력을 처리함

boolean onKeyDown(int keyCode, KeyEvent event)

 

2) View.OnKeyListener 인터페이스의 onKey 메서드를 구현한 후, onKey 메서드를 리스너로 등록하여 활용할 수 있음

boolean onKey(View v, int keyCode, KeyEvent event)

 


KeyEvent 객체

  • KeyEvent 객체는 키보드 이벤트에 대한 여러 가지 정보를 구하는 메서드를 제공함
  • getKeyCode 메서드는 눌러진 키의 코드(keyCode 인수)를 전달해줌. 조합키의 상태나 이벤트 발생 시간을 조사하는 메서드도 제공함

 

  • 이동키 관련 keyCode
동작 설명
KEYCODE_DPAD_LEFT 왼쪽 이동키
KEYCODE_DPAD_RIGHT 오른쪽 이동키
KEYCODE_DPAD_UP 위쪽 이동키
KEYCODE_DPAD_DOWN 아래쪽 이동키
KEYCODE_DPAD_CENTER 이동키 중앙의 Button

 

  • 문자 관련 keyCode
동작 설명
KEYCODE_A~Z 알파벳 A~Z
KEYCODE_0~9 숫자 0~9
KEYCODE_CALL 통화
KEYCODE_ENDCALL 통화 종료
KEYCODE_HOME
KEYCODE_BACK 뒤로
KEYCODE_VOLUME_UP 볼륨 증가 Button
KEYCODE_VOLUME_DOWN 볼륨 감소 Button

 


getAction 메서드

키보드에 어떤 동작을 했는지 나타내는 값으로 다음 3가지 상수 중 하나를 반환함

동작 설명
ACTION_DOWN 키를 누른 상태
ACTION_UP 키를 누른 후 뗀 상태
ACTION_MULTIPLE 동일한 키를 여러 번 누른 상태