brunch

You can make anything
by writing

C.S.Lewis

by 이승현 Nov 27. 2017

Android Data Binding

Android Data Binding Library #03

Attribute Setters


#01 Attributes setter


데이터가 업데이트될 때마다, 자동 생성된 바인딩 클래스는 View를 업데이트하기 위해 각 특성(XML Attribute)의 setter 메서드를 호출합니다.


이때 자동으로 setter 메서드를 호출할 수도 있고, 개발자가 커스텀하게 setter 메서드를 호출하게 할 수 도 있습니다.




Automatic Setters


#02 Automatic Setter with XML attribute


특성의 경우, 데이터 바인딩은 자동으로 setter 메서드를 호출합니다.

#03 TextView attr_android:text


예를 들어, 위에서 처럼 데이터 바인딩은 TextView android:text 특성의 setText(int, TextView.BufferType)라는 setter 메서드를 호출합니다.




#04 Automatic Setter with no XML attribute


특성이 존재하지 않더라도 데이터 바인딩은 작동할 수 있습니다. 

예를 들어, DrawerLayout에는 특성이 없지만 setter는 많이 있습니다. 자동 setter를 이용하면 이런 setter 중 하나를 사용할 수 있습니다.

setScrimColor(int)라는 setter 메서드를 호출하기 위해서는 'set'이라는 수식어를 뺀 'scrimColor'라는 이름을 써야 합니다.





Custom Setters


#05 Custom Setter


사용자 지정(custom) 특성을 이용하여 데이터 바인딩을 할 수 있습니다.

1. XML 레이아웃 파일에 'imageURL'와 같은 사용자 지정 특성을 추가.
2. public static 메서드 작성.
3. @BindAdapter 주석 추가.


안드로이드에서 기본적으로 제공하는 특성뿐만 아니라 개발자가 직접 특성을 만들어서 데이터 바인딩을 이용할 수 있기 때문에, View 인스턴스를 생성하지 않고 좀 더 유연하게 개발을 할 수 있습니다.

좀 더 자세한 내용은 아래 링크를 참고해 주시기 바랍니다.









사용자 지정 특성을 이용한 데이터 바인딩이면 웬만한 View 관련 코드는 XML로도 처리할 수 있을 거 같습니다.



브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari