안드로이드 커스텀 컴포넌트를 만들 때는

Context context를 매개변수로 받는 기본 생성자 이외에

xml에서 태그로 정의해 컴포넌트를 선언할 수 있게

<ClassName>(Context context, AttributSet attrs) 생성자 또한 구현해야 한다.

아이폰 프로그래밍에서 nib 파일에 아카이빙된 객체가 초기화될 때 별도 메서드를 호출하는 것처럼

안드로이드에서도 Inflater를 통해 초기화되는 클래스는 이 클래스 생성자를 통해서만 초기화되고

이 클래스 생성자를 명시적으로 구현하지 않으면 예외가 발생한다.

물론 커스텀 컴포넌트를 직접 코드로 초기화한다면 저 생성자를 호출하지 않겠지만

컴포넌트를 어떻게 사용할지 모르므로 항상 두 생성자 메서드를 명시적으로 구현하는

습관을 들이는 게 좋다.

이런 식으로 커스텀 컴포넌트를 레이아웃 xml에서 사용하면 컴포넌트를 매번 재사용하기가 쉽고

고유 아이디를 매번 일일이 생각하지 않아도 되므로 편하며

컴포넌트 단위로 기능을 캡슐화할 수 있어서 좋다.

이 경우 커스텀 컴포넌트가 컨테이너라면 내부에 있는 컴포넌트의 참조는

커스텀 컨테이너의 공개 API를 통해 (필요한 것들만) 접근할 수 있게 해주면 된다.

크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by joshy21

2011/04/21 03:24 2011/04/21 03:24
, ,
Response
0 Trackbacks , 0 Comments
RSS :
http://joshy21.com/weblog/rss/response/25

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

« Previous : 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 : ... 22 : Next »

블로그 이미지

- joshy21

Archives

Authors

  1. joshy21

Recent Trackbacks

Calendar

«   2012/02   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      

Site Stats

Total hits:
3482
Today:
6
Yesterday:
7