Home Event
Post
Cancel

Event

이벤트 처리하기

모바일에서는 주로 손가락으로 화면을 터치하며, 그 순간 터치 이벤트(Touch Evnet)가 발생한다.

또한, 안드로이드 폰의 주요 이벤트로는 실제 버튼이나 소프트 키패드를 누르면 발생하는 KeyEvent도 있다.

그리고 소스 코드에서 클릭 이벤트를 처리하도록 하려면 버튼의 setOnClickListener 메서드를 이용해

리스너를 설정할 수 있습니다.

이와 같은 이벤트 처리 방식은 화면에서 발생하는 이벤트를 버튼과 같은 위젯 객체에 전달한 후

그 이후의 처리 과정을 버튼에 위임한다고 해서 위임 모델(Delegation Model) 이라고 부른다.

이렇게 하면 코드가 복잡해지지 않고 이벤트를 위젯마다 개별적으로 처리하는 객체 지향 코드를 만들 수 있다.

graph LR
B[public void onClick]-->|설정|A(Button 객체)
B-->|구현|C(OnClickListener 인터페이스)
1
2
3
boolean onTouchEvent(MotionEvent event)
boolean onKeyDown(int key, KeyEvent event)
boolean onKeyUP(int keyCode, keyEvent event)

기존의 뷰 객체에서 이벤트를 처리하려면 리스너를 설정하는 메소드를 호출해야 한다.

다음은 기존의 뷰 클래스를 그대로 사용하면서 그 객체에 설정하여 사용하는 메서드이며,

모두 리스너 인터페이스를 구현하도록 만들어져 있다.

1
2
3
4
View.OnTouchListener: boolean onTouch(View v, MotionEvent event)
View.OnKeyListener: boolean onKey (View v, int keyCode, KeyEvent event)
View.OnClickListenr: void onClick (View v)
View.OnFocusChangeListener : void onFocusChange(View v, boolean hasFoucus)

OnTouchListener는 버튼과 같은 객체에 자주 사용하고, OnClickListenr는 버튼 뿐만 아니라,

일반적인 뷰 객체에도 사용할 수 있다.


대표적인 이벤트 유형

속성설명
터치 이벤트화면을 손가락으로 누를 때 발생하는 이벤트
키 이벤트키 패드나 하드웨어 버튼을 누를 때 발생하는 이벤트
제스처 이벤트터치 이벤트 중에서 스크롤과 같이 일정 패턴으로 구분되는 이벤트
포커스뷰 마다 순서대로 주어지는 포커스
화면 방향 변경화면의 방향이 가로와 세로로 바뀜에 따라 발생하는 이벤트

제스처 이벤트 유형

메서드이벤트 유형
onDown()화면이 눌림
onShowPress()화면이 눌렸다 떼어짐
onSingleTapUp()화면이 한 손가락으로 눌렸다 떼어짐
onSingleTapConfirmed()화면이 한 손가락으로 눌림
onDoubleTap()화면이 두 손가락으로 눌림
onScroll()화면이 눌린 채 일정 속도와 방향으로 움직임
onFling()화면이 눌린 채 가속도를 붙여 손가락을 움직였다 뗌
onLongPress()화면이 오랫동안 눌림
This post is licensed under CC BY 4.0 by the author.