2011/03/21 - 해당되는 글 1건
크리에이티브 커먼즈 라이선스
Creative Commons License


비슷한 코드가 반복되므로 리팩토링을 한다. 안드로이드는 하나의 리스터를 여러 뷰에 대해 등록하는 것을 허용한다.



액티비티가 OnClickListener 인터페이스를 직접 구현하였으므로 이 경우 리스너는 액티비티 자신인 this이다. 한 리스너를 두 버튼의 클릭 메서드로 같이 등록했으므로 어떤 버튼을 누르나 호출되는 메서드는 동일하다. 대신 onClick 메서드는 누구를 클릭했는지 View타입의 인수 v를 전달받으며 vgetId 메서드를 호출하여 클릭된 버튼을 알아내고 각 버튼별 클릭처리를 수행한다.

 

핸들러가 하나로 통합되었다는 면에서 바람직하지만 액티비티를 리스너로 사용한다는 점은 다소 부담스럽다. 최상위의 액티비티는 그대로 두고 별도의 리스너 객체를 멤버로 선언한 후 이 멤버를 리스너로 사용하는 것이 좀 더 깔끔하다.

 


위의 코드는 위젯의 리스너를 처리하는 가장 정석적인 방법이다.

저작자 표시
신고

'Study > Android' 카테고리의 다른 글

[Android: Media Scanner]  (0) 2011.03.23
[Android: 다국어 지원]  (0) 2011.03.23
[Android: 위젯의 클릭 이벤트]  (0) 2011.03.21
[Android: 이벤트 핸들러]  (0) 2010.10.16
[Android: 출력]  (0) 2010.10.15
[Android: 레이아웃(Layout)?]  (0) 2010.10.03
Trackback 0 | Comment 0

강군v's Blog is powered by Daum & tistory

 

티스토리 툴바