250x250
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 부스트코스에이스
- 막내의막무가내 코틀린 안드로이드
- Fragment
- 부스트코스
- 막내의막무가내 일상
- 막내의 막무가내
- 2022년 6월 일상
- 막내의막무가내 플러터
- 막내의막무가내 안드로이드
- 막내의 막무가내 알고리즘
- 프래그먼트
- 막내의막무가내 코볼 COBOL
- 막내의막무가내 플러터 flutter
- 막내의막무가내 SQL
- 막내의막무가내
- 안드로이드
- 막내의막무가내 rxjava
- 안드로이드 sunflower
- 막내의막무가내 프로그래밍
- 주택가 잠실새내
- 막내의막무가내 안드로이드 에러 해결
- 막내의막무가내 목표 및 회고
- 프로그래머스 알고리즘
- 안드로이드 Sunflower 스터디
- flutter network call
- 막무가내
- 막내의막무가내 알고리즘
- 막내의막무가내 안드로이드 코틀린
- 막내의막무가내 코틀린
- 주엽역 생활맥주
Archives
- Today
- Total
막내의 막무가내 프로그래밍 & 일상
[안드로이드] 하나의 바인딩어댑터에서 여러개의 리사이클러뷰 작업을 할 때 에러 처리 본문
728x90
[2021-04-14 업데이트]
평소 리사이클러 뷰 어댑터를 데이터 바인딩 어댑터를 사용하여 밑과 같이 하나에 몰아 넣어서 어댑터로 분기처리 했었습니다. 그런데 두 개 이상의 리사이클러뷰를 띄워야하는 경우 하나의 리사이클러뷰만 아이템이 세팅되는 문제가 발생했습니다. (계쏙 뭐가 문젠지 삽질 엄청했습니다. ㅠㅠ)
바인딩어댑터 하나에 여러 리사이클러뷰 데이터바인딩에서 동시에 접근해서 하나는 무시되는 문제 같기도 한데 아직 원인을 찾진 못했습니다. 그런데 어디서는 잘되고 어느 화면에서는 안되고 그럽니다. (원인을 아시는분 있으면 답변 부탁드립니다.)
만약 리사이클러 뷰 두개 이상에 저처럼 데이터바인딩어댑터 하나로 묶어서 사용중 같은 에러를 만나면 그냥 액티비티나 프래그먼트에서 코드로 어댑터에 직접 아이템을 넣어주면 해결될 것입니다.
@BindingAdapter("setItems")
fun RecyclerView.setAdapterItems(items: List<Any>?) {
when (adapter) {
is LocalPageAdapter -> {
items?.let {
with(adapter as LocalPageAdapter) {
clear()
addItems(it as List<TourIntroduce>)
}
}
}
is HomeProductAdapter -> {
items?.let {
with(adapter as HomeProductAdapter) {
clear()
addItems(it as List<Product>)
}
}
}
is ProductHashTagAdapter -> {
items?.let {
with(adapter as ProductHashTagAdapter) {
clear()
addItems(it as List<String>)
}
}
}
is HomeHashTagAdapter -> {
items?.let {
with(adapter as HomeHashTagAdapter) {
clear()
addItems(it as List<String>)
}
}
}
is LocalProductAdapter -> {
items?.let {
with(adapter as LocalProductAdapter) {
clear()
addItems(it as List<Product>)
}
}
}
is ReservationHistoryAdapter -> {
items?.let {
with(adapter as ReservationHistoryAdapter) {
clear()
addItems(it as List<ReservationProduct>)
}
}
}
is TourHistoryAdapter -> {
items?.let {
with(adapter as TourHistoryAdapter) {
clear()
addItems(it as List<ReservationProduct>)
}
}
}
is CommunityAdapter -> {
items?.let {
with(adapter as CommunityAdapter) {
clear()
addItems(it as List<UserReview>)
}
}
}
is AlarmAdapter -> {
items?.let {
with(adapter as AlarmAdapter) {
clear()
addItems(it as List<Alarm>)
}
}
}
is MasterMainAdapter -> {
items?.let {
with(adapter as MasterMainAdapter) {
clear()
addItems(it as List<MasterProduct>)
}
}
}
is FavoriteAdapter -> {
items?.let {
{
with(adapter as FavoriteAdapter) {
clear()
addItems(it as List<Product>)
}
}
}
}
is ProfileMasterLetterAdapter -> {
items?.let {
{
with(adapter as ProfileMasterLetterAdapter) {
clear()
addItem(
MasterLetter(
title = "무전일기 이장",
timestamp = getTimestamp(),
content = "반갑습니다! 안전하고 멋진\n" +
"무전여행을 기대할게요 :)"
)
)
addItems(it as List<MasterLetter>)
}
}
}
}
else -> {
Log.d(TAG, "바인딩어댑터 setItems 예외 에러")
}
}
}
댓글과 공감은 큰 힘이 됩니다. 감사합니다. !!
728x90
'안드로이드 > 코틀린 & 아키텍처 & Recent' 카테고리의 다른 글
[안드로이드] Scoped Storage(범위지정 저장소) 정리 (Legacy Storage와 차이점 정리) (33) | 2020.09.29 |
---|---|
[안드로이드] Spinner 사용시 해당 프래그먼트에서 다른 프래그먼트갔다가 돌아왔을 시 나는 에러 처리 (Fragment spinner error) (0) | 2020.09.28 |
[안드로이드] 안드로이드 상태바(StatusBar) 투명 처리 (2) | 2020.09.20 |
[안드로이드] 안드로이드 CollapsingToolbarLayout UI 기록 (2) | 2020.09.19 |
[안드로이드] WebView Sample 정리 및 프래그먼트에서 뒤로가기시 웹뷰 스택사용하기 (0) | 2020.09.12 |
Comments