Android: Compound 컨트롤 구현

Wrox에서 최근 출간한 Professional Android Application Development 2nd Edition 책을 보다 compound control을 만드는 방법에 대해 설명한 4장의 내용에 질문이 생겼다.
compound control을 inflate하면 parent에 attach를 한다는데 이게 어떤 의미인지? 내가 작성한 activity에 가져다 쓰려면 어떻게 해야하는지?

관련 자료를 인터넷에서 찾아보니 아래와 같은 유용한 정보들을 찾을 수 있었다.
위 글에서 알려준대로 새로운 컨트롤을 만든 후 activity에서 findViewById로 이 컨트롤에 대한 reference를 얻으려고 시도하였는데 문제가 생겼다. 아무리해도 null만 리턴되는 것이다. 동일 문제를 Stackoverflow에서 검색해보니 아래와 같은 자료를 찾았다.
위 내용대로 custom component를 만들 때 생성자를 아래와 같이 AttributeSet을 가진놈으로 작성하면 문제가 없어진다.
public ClearableEditText(Context context, AttributeSet attr) {
...
}
Android SDK의 View 관련 문서를 읽어보니 확실히 이유를 알겠다.

댓글

이 블로그의 인기 게시물

Wireless: HotSpot 2.0 이란?

Apple M1 Mac Mini에서 이더리움 (Ethereum) 채굴하기

Java: Java for Game? Java가 Game 개발에 어울릴까?