Hayden's Archive
[Android] 키보드 이벤트(Keyboard Event) 본문
참고 : 한국방송통신대학교 모바일앱프로그래밍 교재( 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 | 동일한 키를 여러 번 누른 상태 |