이벤트 처리  GUI 운영체제는 이벤트 드리븐으로 동작한다.  사용자와 상호 작용하려면 이벤트를 매끄럽게 처리하는 기술이 필요하다.  안드로이드에는 이벤트를 처리하는 다양한 방법이 있다.  팀 작업을 위해 모든 방법을 숙지해야 하며 자바의 고급 문법이 사용된다.

Slides:



Advertisements
Similar presentations
3. 메소드와 변수 SCJP 자격증 프로젝트 발표자 : 최선웅. 1. 메 소 드 개 념 2. 메 소 드 양 식 3. 메 소 드 변 수 4. 메 소 드 예 제 5. 참 고 문 헌 / 자 료 목 차.
Advertisements

Android Tutorial 안드로이드 SDK 설치 및 기초 프로그래밍 강좌입니다 서울대학교 네트워크 융합 및 보안 연구실 권 윤
어서와 Java는 처음이지! 제20장 실전프로젝트 #2.
OpenCV 안드로이드 연동 환경설정 OpenCV-Android 를 다운 받습니다.
Contents 학습목표 이벤트를 처리하는 여러 가지 형식과 각 형식의 장단점에 대해 상세하게 연구하고 기본적인 이벤트에 대한 실습을 한다. 사용자의 입력을 자유자재로 처리하기 위해서 반드시 습득해야 하는 중요한 기술 실습. 학습내용 이벤트 핸들러 여러 가지 이벤트.
CHAP 19. 구글맵.
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
Chapter 10. AWT 이벤트.
Contents 학습목표 이벤트를 처리하는 여러 가지 형식과 각 형식의 장단점에 대해 상세하게 연구하고 기본적인 이벤트에 대한 실습을 한다. 사용자의 입력을 자유자재로 처리하기 위해서 반드시 습득해야 하는 중요한 기술 실습. 학습내용 이벤트 핸들러 여러 가지 이벤트.
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
최윤정 Java 프로그래밍 클래스 상속 최윤정
JAVA 클래스와 멤버 2014년 4월 2일 19:00 손은경 강원대학교 데이터베이스 연구실 강원대학교 데이터베이스 연구실.
제 08 장 자바 빈즈 학기 인터넷비즈니스과 강 환수 교수.
Ch.07-5 xml-rpc 사용하기 김상엽.
CHAP 4. 이벤트 처리.
CHAP 6. 이벤트 처리.
Java로 배우는 디자인패턴 입문 Chapter 5. Singleton 단 하나의 인스턴스
윤 홍 란 다이알로그(대화상자) 윤 홍 란
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
forms 객체 입력상자 체크상자, 라디오 버튼 목록상자
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
07. 메뉴와 대화상자 제목. 07. 메뉴와 대화상자 제목 메뉴를 작성하고 사용하는 방법을 배운다. 토스트의 다양한 출력 방법을 알아본다. 대화상자의 사용법을 익힌다.
Chap08 다중 스레드 8.1 스레드 개요 8.2 Thread 클래스와 스레드 생명주기 8.3 스레드 생성과 사용
12 ███████████ 12.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
자바 5.0 프로그래밍.
CHAP 6. 이벤트 처리.
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
10장. 예외처리.
13. 연산자 오버로딩.
7장 인터페이스와 추상 클래스.
Method & library.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
Part 4 클래스 라이브러리 Chapter 10 : 다중 스레드 Chapter 11 : 패키지와 주요 클래스
자바 5.0 프로그래밍.
Power Java 제11장 상속.
15강. 폼 데이터 값 검증 Validator를 이용한 검증 ValidationUtils 클래스
JA A V W. 06.
CHAP 21. 전화, SMS, 주소록.
객체기반 SW설계 팀활동지 4.
18강. 인터페이스 – II - 인터페이스와 다중상속 - 인터페이스를 통한 로봇 장남감 만들기 프로그래밍
11. 어댑터뷰 제목. 11. 어댑터뷰 제목 리스트뷰와 그리드뷰 활용법을 배운다. 갤러리와 스피너의 사용법을 익힌다.
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
12강. 컨트롤러 컨트롤러 클래스 제작 요청 처리 메소드 제작 뷰에 데이터 전달
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
플래시 CS3 액션스크립트3.0.
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
05. 그래픽 빨간색 사각형 그리기 그래픽 그리기 발 표 자 : 07 정 경 오.
중복 멤버의 처리 조 병 규 한 국 교 통 대 학 교 SQ Lab..
가장 많이 사용 Accelerator 최상위 WM_COMMAND, OLE 메시지 관련 이벤트 처리만 가능 이 클래스를 상속받아서 다른 이벤트 처리 이벤트 처리 관련 윈도우(창) 최상위 클래스 멀티 테스킹(모듈) CFrameWnd, Cview,
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
3. 모듈 (5장. 모듈).
발표자 : 이지연 Programming Systems Lab.
9 브라우저 객체 모델.
13강_이벤트 & 리스너(Listener) 이벤트 개요 커스텀 뷰의 콜백메소드를 이용한 이벤트 처리
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
Static과 const 선언 조 병 규 한 국 교 통 대 학 교 SQ Lab..
Java의 정석 제 8 장 예외처리 (Exception handling) Java 정석 남궁성 강의
자바 객체 지향 프로그래밍 Ps lab 김윤경.
상속 (Inheritance) private 전용부분 전용부분 공용부분 공용부분 public 기본 클래스
CHAP 5. 메뉴와 대화상자.
7 생성자 함수.
BoardGame 보드게임 따라가기.
Presentation transcript:

이벤트 처리  GUI 운영체제는 이벤트 드리븐으로 동작한다.  사용자와 상호 작용하려면 이벤트를 매끄럽게 처리하는 기술이 필요하다.  안드로이드에는 이벤트를 처리하는 다양한 방법이 있다.  팀 작업을 위해 모든 방법을 숙지해야 하며 자바의 고급 문법이 사용된다.

EventListener  리스너 (Listener) : 이벤트를 처리하는 범용적인 방법  리스너 등록 메서드 : set 리스너 - void setOnTouchListener (View.OnTouchListener l) - void setOnKeyListener (View.OnKeyListener l) - void setOnClickListener (View.OnClickListener l) - void setOnLongClickListener (View.OnLongClickListener l) - void setOnFocusChangeListener (View.OnFocusChangeListener l)  인터페이스 구현, 리스너 객체 생성, 이벤트와 연결 과정을 거쳐 사용

EventListener 구현  인터페이스는 임의의 클래스가 구현할 수 있다.  액티비티가 구현 : 코드는 짧아지지만 구조적으로 바람직하지 못하며 뷰의 독립성이 떨어진다.  뷰가 구현 : 인터페이스 구현을 위해 상속을 받아야 하는 문제가 있다.  두 방법은 특정한 조건이 만족될 때만 사용하는 것이 바람직하다.

EventListener 구현  이벤트 연결 방법 View.setOnClickListener(OnClickListener clickListener) View.setOnTouchListener(OnTouchListener touchListener) View.setOnLongClickListener(OnLongClickListener longClickListener)  사용 예 1) View.setOnClickListener(clickListener); ClickListenerClass clickListener = new ClickListenerClass(); class ClickListenerClass clickListener implements OnClickListener public void onClick(View view) { // 클릭시 동작 정의 }

EventListener 구현  사용 예 2) public class MainActivity extends Activity implements protected void onCreate(Bundle savedInstanceState) {.... 생략 View.setOnClickListener(this);.... 생략 public void onClick(View v) { // 클릭시 동작 정의 }

EventListener 구현 – 콜백 메소드 재정의  사용하려는 뷰 클래스를 상속받아서 콜백 메소드를 재정의하는 방법  단점 - 메소드를 재정의 하기 위해서 반드시 클래스를 상속받아야 함 - 안드로이드에서 제공하는 표준 위젯을 그대로 사용하지 못하고 항상 수정하는 작업을 한단계 더 거쳐야 함  장점 - 위젯 자체에 이벤트 정의가 되어 있으므로 잘 만들어 놓으면 업무 효율 상승

EventListener 구현 – 콜백 메소드 재정의  사용하려는 뷰 클래스를 상속받아서 콜백 메소드를 재정의하는 방법

EventListener 구현 – 인터페이스 구현 1  별도의 클래스를 만든 후 리스너 인터페이스를 구현하는 방법

EventListener 구현 – 인터페이스 구현 2  액티비티가 직접 리스너 인터페이스를 구현

EventListener 구현 – 익명 InnerClass 1  익명 이너 클래스 문법을 활용하여 리스너 클래스 선언을 생략하는 방법  객체 생성이 한번만 가능함 ( 객체가 생성되면서 코드가 정의됨 )  코드가 짧아지고 간결함

EventListener 구현 – 익명 InnerClass 2  익명 이너 클래스 문법을 활용하여 리스너 클래스 선언을 생략하는 방법  객체 생성이 한번만 가능함 ( 객체가 생성되면서 코드가 정의됨 )  코드가 짧아지고 간결함

EventHandler 우선 순위  하나의 이벤트를 여러 객체에서 처리할 수 있다.  중복 정의되어 있을 경우 우선 순위에 따라 호출된다.  좁은 범위일수록 우선 순위가 높다.  리턴값으로 다음 순위의 핸들러 호출 여부를 결정한다.

외부 변수 액세스  이너 클래스는 외부 클래스의 멤버를 참조할 수 있다.  핸들러로 전달할 값을 멤버로 선언하는 것은 구조적으로 바람직하지 않다.  지역 변수를 핸들러로 전달할 때는 반드시 final 로 선언해야 한다.  전달받은 인수를 핸들러로 전달할 때는 final 로 사본을 복사한 후 사용하거나 인수를 final 로 선언한다.

외부 변수 액세스 // 멤버변수 사용

터치 입력  손가락으로 화면을 누를 때 발생한다. - boolean onTouchEvent (MotionEvent event) - boolean onTouch (View v, MotionEvent event)  콜백에 비해 리스너는 이벤트 대상 뷰를 인수로 전달받는다.  getAction : 화면에서 어떤 동작을 했는지를 전달한다.  getX, getY : 터치한 좌표

키보드 입력  키보드 또는 화면 키보드를 눌렀을 때 발생한다. - boolean onKeyDown (int keyCode, KeyEvent event) - boolean onKey (View v, int keyCode, KeyEvent event)  인수로 키코드와 액션이 전달된다.  키보드만으로 동작하는 앱을 만들어서는 안된다.

클릭 이벤트  콜백은 없으며 View.OnClickListener 리스너로 이벤트를 받아야 한다. 클릭시 다음 메서드가 호출된다. - void onClick (View v)  비슷한 핸들러는 하나로 통합한다. 임시 객체를 사용할 수 없으며 이름이 있어야 한다.  공유 핸들러는 리스너의 getId 메서드로 클릭된 버튼을 알아낸다.  XML 리소스의 onClick 속성으로 핸들러 메서드를 지정할 수 있다.

롱클릭 이벤트  누른 채로 일정 시간을 대기할 때 발생한다. 리스너로 처리한다. - void setOnLongClickListener (View.OnLongClickListener l) - boolean onLongClick (View v)  클릭과 유사하되 리턴값으로 클릭 이벤트 발생 여부를 통제한다.  true 를 리턴하면 처리를 끝낸다.  false 를 리턴하면 클릭 이벤트가 추가로 발생한다.  리턴값은 프로그램의 논리에 따라 달라진다.  롱클릭은 명령을 숨겨놓을 수 있는 수단이지만 별도의 설명이 필요하다는 면에서 비직관적이다.

포커스 관리  포커스를 가진 뷰는 다른 색으로 강조된다.  터치 모드에서는 포커스 표시가 생략된다.  터치 모드는 시스템이 관리하며 사용자에 의해서만 바뀔 뿐 코드에서는 변 경할 수 없다.  포커스 가능 여부는 속성이나 메서드로 지정한다.  포커스 순서를 속성으로 임의 지정 가능하다.