Study/Android

BindingAdapter 적용

hegunhee 2022. 4. 13. 11:37

지금 현재 진행하고있는 프로젝트에서 BindingAdapter를 사용해서

쉽게 RecyclerView의 데이터를 변경하려했지만 실패했다.

결국 state Pattern을 사용해서 viewmodel의 LiveData를 옵저빙해서

사용하긴했지만 BindingAdapter를 사용하지못했다는 아쉬움은 계속 남았습니다.

그리고 현재 공부를 다시해 공부용 앱에다가는 BindingAdatper를 성공시켰습니다.

ObservableArrayList가 아닌 LiveData<ArrayList>를 사용하였습니다.

그리고 ObservableArrayList를 사용하는방법은 잘못된 방법같습니다..

그리고 버튼이 눌릴경우 데이터가 추가되는 방향으로했지만 버튼이 눌렸을때의 로직을 작성하고

ArrayList의 데이터는 변경되었지만 BindingAdapter가 호출되지 않았습니다.

movieList의 value를 재 할당 해주니 성공적으로 BindingAdapter가 호출되었습니다.

여기서 이전 코드는 단순히 arrayList에 데이터를 추가해주는것에 멈췄지만

movieList의 value를 재 할당 해주니 그때는 BindingAdapter가 제대로 호출되었습니다.

 

 

BindingAdapter 코드

공식 문서를 보니 해당 View의 Setter 메소드를 호출해야 BindingAdapter가 호출된다고 하네요

'Study > Android' 카테고리의 다른 글

Moshi에서 kotlinx.serialization로 변경하게된 이유  (0) 2024.03.03
compileSdk vs targetSdk  (0) 2024.02.21
Android의 Context  (0) 2022.04.04
안드로이드 데이터 바인딩  (0) 2022.01.17
콘텐츠 프로바이더  (0) 2022.01.04