티스토리 뷰

조금만 찾아보니 생각보다 빠르게 고칠 수 있었던 에러였지만 예전에도 한 번 겪었던 에러이기 때문에 이렇게 기록으로 남기려고 한다. 그리고 나와 같은 안드로이드 입문자들이 데이터 바인딩을 쓰다 보면 한 번씩 겪을 에러이기 때문에 조금이라도 시간을 아끼길 바라며 간략하게 글을 남기려고 한다.

 

원인

우선 에러 코드를 통해서 문제시 되는 코드는 다음과 같았다.

...
android:text="@{myData.friendsNum}"
...

xml에서 데이터바인딩을 통해서 friendsNum이라는 Int 값을 전달하게되면 내부적으로는 다음과 같은 자바 코드로 변환된다.

// myDataFriendsNum Integer
this.myTextView.setText(myDataFriendsNum);

하지만 위 함수의 myData.friendsNum 변수는 String 값(ex : 0 => "0")으로 변환되는 것이 아니라 String 자원을 검색하기 위한 Resource Id로 활용된다. 하지만 해당 Resource Id에 해당하는 값이 없기 때문에 나는 에러였다.

 

해결

...
android:text="@{String.valueOf(myData.friendsNum)}"
...

데이터 바인딩 내에서 String의 valueOf 함수를 활용하여 String 값으로 변환하는 절차가 필요하다.

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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 30 31
글 보관함