Notice
Recent Posts
Recent Comments
Link
관리 메뉴

설.현.아빠

Chapter 5 ] 입력 (5-1 Event Handler) 이벤트 처리의 다양성. ① 콜백 메서드 재정의 본문

교재 & 강좌/안드로이드 프로그래밍 정복

Chapter 5 ] 입력 (5-1 Event Handler) 이벤트 처리의 다양성. ① 콜백 메서드 재정의

설.현.아빠 2011. 3. 9. 10:04



으미...자바는 머 이리 처리하는 방식이 다양한지...이런형식 저런형식 때문에 갈피를 못잡겠다..


이번 공부를 통해서 확실히 개념을 잡고 넘어가자.


이벤트를 처리하는 6가지--;; 방법들 중 첫번째 방법!!


①  콜백 메서드 재정의



onKeyDown으로는 눌려진 키의 정보를 알 수 있고!!! onTouchEvent로는 눌려진 좌표값을 알 수 있단다..


그래서 Toast로 좌표값을 출력해봤다. 


여기서 중요한점!! Log를 찍어서 X, Y값을 찍어보면 알겠지만 한번 터치 할때마다 onTouchEvent는 여러번 발생한다.


하지만 ACTION_DOWN은 한번만 일어난다. 해당 소스를 동작시키고 화면을 장시간 터치할 경우 onTouchEvent는 계속 호출 됨을 알 수 있다.




View클래스로 부터 파생된 MyView클래스...왜?? View클래스의 onTouchEvent를 직접 수정하진 못하니까 extends 시켜서 수정하는거다.


또한 super.onTouchEvent(event);  꽤나 많이 보는 구문이다. 왜?? 부모에게 처리 기회를 먼저 제공하는것이 보편적!! 이라서....


난 주석처리 해봤지. 동일하게 동작한다. 머 자식된 도리라니 걍 하자!!



제목에서 알려주듯이 콜백 메서드 재정의!!! 라는걸 다시한번 생각해보자! 즉 여기서 말하는 콜백 메서드는 View클래스의 onTouchEvent를


콜백 메서드라고 한다. 이를 extends받아서 수정하니까 콜백 메서드 재정의!! 표현이 고급스럽네^^



콜백 메서드를 재정의 하는것에 단점은..반드시 슈퍼 클래스(여기서는 View클래스가 되지.)를 Extends받아야 한다는것이다.


머 그냥 상속 받으면 되지 머가 문젠가 하지만..View는 여러 가지 이유로 재정의를 하므로 별 문제가 안되지만 재정의가 필요없는


Button이나 TextView같은 경우엔 번거롭다는 것이다. 그냥 바로 Button의 메소드를 수정하지 못하고, MyButton extends Button과 같이


한번의 과정을 더 거쳐서 재 정의 해야하는 번거로움!!??


다른 한가지 단점!!! 요게요게 중요한데. 모든 콜백 메소드를 제공하진 않는다는 것이다.


머여...그니까 간단한 터치나 키눌림이나 Long Press~~같은 이벤트는 콜백 메서드로 재정의를 할 수 있지만 머...드래그...진동 센서..조도 센서 


등의 이벤트는 콜백 메서드 재정의를 못해서.....①  콜백 메서드 재정의는 일반적인 이벤트 처리 방법이 되지는 못한단다.


그냥 머 내가 볼땐 사용하기 편하고 간단한거 같은데?? 나머지 5가지 방법을 알아봐야겠다. 더 편한 방법이 있으면...이건 버려!^^


Comments