Android: Compound 컨트롤 구현
Wrox에서 최근 출간한 Professional Android Application Development 2nd Edition 책을 보다 compound control을 만드는 방법에 대해 설명한 4장의 내용에 질문이 생겼다.
Professional Android Application Development (2nd, Paperback) - Meier, Reto/John Wiley & Sons Inc |
compound control을 inflate하면 parent에 attach를 한다는데 이게 어떤 의미인지? 내가 작성한 activity에 가져다 쓰려면 어떻게 해야하는지?
관련 자료를 인터넷에서 찾아보니 아래와 같은 유용한 정보들을 찾을 수 있었다.
위 글에서 알려준대로 새로운 컨트롤을 만든 후 activity에서 findViewById로 이 컨트롤에 대한 reference를 얻으려고 시도하였는데 문제가 생겼다. 아무리해도 null만 리턴되는 것이다. 동일 문제를 Stackoverflow에서 검색해보니 아래와 같은 자료를 찾았다.
위 내용대로 custom component를 만들 때 생성자를 아래와 같이 AttributeSet을 가진놈으로 작성하면 문제가 없어진다.
public ClearableEditText(Context context, AttributeSet attr) {...}
Android SDK의 View 관련 문서를 읽어보니 확실히 이유를 알겠다.
댓글
댓글 쓰기