[Android Studio] 8장 - 사용자 이벤트 처리하기 [키 이벤트]

이상협·2022년 9월 6일
0

안드로이드스튜디오

목록 보기
27/43

키 이벤트

사용자가 폰의 키를 누르는 순간에 발생
키 이벤트를 처리하기 위해서는 콜백 함수를 재정의 해야함

  • onKeyDown
키를 누른 순간의 이벤트
  • onKeyUp
키를 떼는 순간의 이벤트
  • onKeyLongPress
키를 오래 누르는 순간의 이벤트
class MainActivity : AppCompatActivity() {
    ...

    override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
        Log.d("test", "onKeyDown")
        return super.onKeyDown(keyCode, event)
    }

    override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
        Log.d("test", "onKeyUp")
        return super.onKeyUp(keyCode, event)
    }
}

키 이벤트는 폰에서 제공하는 소프트 키보드의 키를 의미하지 않음

안드로이드 기기의 하드웨어 키보드 또는 안드로이드 시스템 버튼의
이벤트 처리에 사용됨
(뒤로가기 버튼, 볼륨 조절 버튼을 키 이벤트로 인식
-> 전원, 홈, 오버뷰 버튼은 키 이벤트로 처리 X)

override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
    when (keyCode) {
        KeyEvent.KEYCODE_BACK -> Log.d("test", "BACK Button")
        KeyEvent.KEYCODE_VOLUME_UP -> Log.d("test", "Volume Up")
        KeyEvent.KEYCODE_VOLUME_DOWN -> Log.d("test", "Volume Down")
    }
    return super.onKeyDown(keyCode, event)
}

뒤로가기 버튼 이벤트

뒤로가기 버튼 이벤트는 onKeyDown()이나 onKeyUp() 함수 말고,
onBackPressed() 함수를 사용 할 수 있음

override fun onBackPressed() {
	Log.d("test", "Back Button")
}

참고

Do it! 깡쌤의 안드로이드 프로그래밍 with 코틀린 (개정판)

0개의 댓글