사용자 이벤트 처리하기

두리두두·2024년 3월 10일

Android

목록 보기
4/25

1.터치 이벤트

  • 화면에서 발생하는 터치 이벤트
  • onTouchEvent(터치 종류와 발생지점)
  • 종류는 세가지 : ACTION_DOWN, ACTION_UP, ACTION_MOVE
    => 모두 MotionEvent 매개변수로 얻어짐.
  • 좌표도 MotionEvent 객체로 얻음 (x, y, rawX, rawY)
  • x,y : 이벤트 발생한 의 좌표
  • rawX, rawY : 이벤트 발생한 화면의 좌표
	override fun onTouchEvent(event : MotionEvent?) : Boolean{
    when (event?.action) {
    	MotionEvent.ACTION_DOWN -> {
        	Log.d("log", "Touch down event x : ${event.x}, rawX : ${event.rawX}")
        }
        MotionEvent.ACTION_UP -> {
        	Log.d("log", Touch up event")
        }
    }
    return super.onTouchEvent(event)
}

2. 키 이벤트

  • 하드웨어 키보드의 키 이벤트 받음
  • 하드웨어 키 : 네비게이션바(뒤로가기, 홈, 오버뷰), 전원, 볼륨
  • 키 이벤트로 처리 가능한 이벤트 : 뒤로가기, 볼륨
  • onKeyDown, onKeyUp, onKeyLongClick
override fun onKeyDown(keyCode: Int, event: KeyEvent?):Boolean{
	when(keyCode) {
    	KeyEvent.KEYCODE_0 -> Log.d("", "0 키")
        KeyEvent.KEYCODE_A -> Log.d("", "A 키")
      }
   return super.onKeyDown(keyCode, event)
}
  • 백키 : KeyEvent.KEYCODE_BACK
  • 볼륨키 : KeyEvent.KEYCODE_VOLUME_UP, KEYCODE.VOLUME_DOWN

3. 뷰 이벤트

  • 뷰의 이벤트 처리는 이벤트 소스이벤트 핸들러리스너로 연결해서 사용
  • 이벤트 소스 : 이벤트 발생한 객체
  • 이벤트 핸들러 : 이벤트 발생 시 실행할 로직 구현된 객체
  • 리스너 : 소스와 핸들러 연결해주는 함수
  • 이벤트 핸들러를 이벤스 소스에 등록하기 위해 리스너 ㅇㅇ함수를 사용 등으로 표현
binding.checkbox.setOnCheckChangeListner(object : CompoundButton.OnCheckChangeListner {
	override fun onCheckedChanged(p0: CompoundButton?, p1: Boolean){
    	Log.d("log", "체크박스 클릭")
        }
      })

->checkbox라는 이벤트 소스에 oncheck를 등록하기 위해 setOnCheckChangeListenr 사용

=> 뷰 이벤트는 다음 글에서 , , , ,

profile
야금야금 앱 개발자

0개의 댓글