Event
- Android에는 사용자와 애플리케이션의 상호작용에서 이벤트를 가로채는 방법이 여러 가지 있다.
Input Events
- 특정 View 인스턴스에서 이벤트를 캡처
- 사용자의 이벤트를 가로채는 방법
- 이벤트 리스너
- 단일 콜백 메소드를 포함하는 인터페이스
- item과 사용자 상호작용에 의해 트리거
- 예: onClickListener(), onLongClickListener(), onFocusChangeListener(), onKeyListener(), onTouchListener(), nonCreateContextMenuListener()
- 이벤트 핸들러
- 이벤트를 처리하는 단일 콜백 메서드
- 예: onClick(), onLongClick(), onFocusChange(), onKey(), onTouch(), onCreateContextMenu()
- 뷰 클래스에는 "중첩(nested)인터페이스"로 이벤트 리스너가 포함되어 있다.
- 사용자 상호 작용을 캡처
- 이벤트 리스너 등록 : View 인스턴스에 등록되는 이벤트 핸들러
- 이벤트 핸들러 호출 : 이벤트 리스너가 이벤트를 발생시킬 때
onClick() | 사용자가 item 터치(터치 모드)나 탐색 키, 트랙볼을 사용하여 item에 초점을 맞춘 후 Enter나 itme 탭할 때 호출 |
onLongClick() | 사용자가 item 길게 터치(터치 모드) 및 잡고있거나 탐색 키, 트랙볼을 사용하여 항목에 초점을 맞추고 Enter 길게 누르거나 트랙볼을 1초 동안 누르고 있을 때 호출. |
onFocusChange() | 사용자가 탐색 키나 트랙볼을 사용하여 item 위나 item에서 멀어질 때 호출 |
onKey() | 사용자가 item에 초점을 맞추고 기기의 하드웨어 키를 누르거나 놓을 때 호출 |
onTouch() | 사용자가 item 경계 내에서 화면 누르기, 놓기, 이동 동작 등 터치 이벤트 수행할 때 호출 |
Handling Events
- 방법 1: Java 소스 코드에 EventListener 등록하는 EventListener 인터페이스를 구현
- 구현된 클래스의 객체를 이벤트 리스너로 등록
- 방법 2: Java 소스 코드에서 Event Handler 메서드 재정의
예제 1
- View를 클릭할 때, Event의 종류와 위치가 TextView에 표시
- View.OnTouchListener: 손가락으로 화면을 터치했을 때 발생하는 이벤트를 처리하는 이벤트 리스너
- MotionEvent: 터치 좌표 및 터치 모션 유형에 대한 정보를 제공
- 터치 좌표: getX(), getY()
- 모션 유형: getAction()
- 모션 유형은 MotionEvent 클래스에 정의
ACTION_BUTTON_PRESS | 버튼이 눌러짐 |
ACTION_BUTTON_RELEASE | 버튼이 해제됨 |
ACTION_CANCEL | 현재 동작 중단 |
ACTION_DOWN | 누른 동작이 시작, 초기 시작 위치가 포함 |
예제 2
- View를 터치하면, Gesture Event의 종류와 위치가 TextView에 표시
- GestureDetector 클래스
- 제스처를 쉽게 감지할 수 있도록 도와주는 클래스
- 제스처를 식별하려면 MotionEvent를 제공
예제 3
- 뒤로 버튼의 경우 OnBackPressed 또는 onKeyDown 핸들러를 사용
Popups
- Toast
- Snackbar
- AlertDialog
Toast
- 간단한 메시지를 표시하는 간단한 임시 팝업 창
- Toast.makeText(Context context, String message, int duration).show()
- 컨텍스트: 컨트롤러(예: activity)
- 객체 메시지: 메시지
- 기간: 표시 시간
- Toast.LENGTH_LONG or Toast.LENGTH_SHORT
Snackbar
- 간단한 메시지를 표시할 때 Toast 대신 사용
- 메시지를 표시하는 동안 사용자가 스낵바를 통해 작업을 수행할 수 있다.
- 프로젝트에 외부 라이브러리로 추가해야 하므로 디자인 라이브러리를 포함해야 한다.
AlertDialog
- 사용자로부터 확인을 받거나 선택해야 할 때 사용
- 주로 사용자에게 단방향 메시지를 전달하는 데 사용
- 일반적으로 '예' 또는 '아니요'와 같은 일반적인 응답을 처리
'모바일프로그래밍' 카테고리의 다른 글
[모바일 프로그래밍] 8. Drawable (0) | 2023.11.09 |
---|---|
[모바일 프로그래밍] 6. Layout (0) | 2023.11.08 |
[모바일 프로그래밍] 5. View (0) | 2023.11.08 |
[모바일 프로그래밍] 4. 버튼 기능 (0) | 2023.11.08 |
[모바일 프로그래밍] 3. 안드로이드 스튜디오 설치 및 실행 (0) | 2023.09.15 |