본문 바로가기

나의 플랫폼/안드로이드

[Andorid][DataBinding] 매개 변수 2개를 이용 하기

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

데이터 바인딩을 할 때 xml에 매개변수를 2개 이상 넣고 싶을 경우가 있을 겁니다.

이럴 경우 어떻게 하나 고민이 많으 실 텐데요.


분명! 아래와 같이 해보신분들 계실듯~


<TextView
android:id="@+id/amount_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
app:customFuction="@{amount, unit}" />


하지만 위와 같이 하면 데이터 바이딩 에러만 뽑아 냅니다.

그럼 어떻게 하는지 알아볼까요?


먼저 바이딩할 함수를 만들어 놓습니다.


이건 통화(돈) 형태를 지정하는 함수 입니다.


참고 : http://gogorchg.tistory.com/entry/AndroidISO-4217-%ED%86%B5%ED%99%94-%ED%98%95%ED%83%9C-%EB%AC%B8%EC%9E%90%EC%97%B4-%EB%A7%8C%EB%93%A4%EA%B8%B0


@BindingAdapter({"amount","unit"})
public static void customFuction(TextView textView, BigDecimal amount, String unit){
textView.setText(convertCurrency(amount, unit));
}


위 함수를 xml에서 불러오는 소스 입니다.


<TextView
android:id="@+id/amount_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
app:amount="@{amount}"
app:unit="@{unit}"/>

보시는 바와 같이  매개변수 하나당 xml속성 하나가 추가 된다고 생각 하시면 됩니다.!


이렇게 하면 문제 없이 매개 변수에 할당 되어 데이터 바인딩이 진행 되는 것을 확인 할 수 있습니다.



제가 데이터 바인딩을 쓰면서 느낀 점은 초반에 셋팅 하는 게 쉽지 않지만,

추후 유지 보수할 때는 이만한게 없더라구요 ㅎ

참고하세요.