오늘도 안드로이드 개발을 하다가

java.lang.IndexOutOfBoundsException:Inconsistency detected. Invalid view holder adapter positionMyViewHolder{152d0dc position=5 id=-1, oldPos=-1, androidx.recyclerview.widget.RecyclerView

 

이런 에러가 났다.

 

SwipeRefreshLayout을 썼는데 당겨서 새로고침을 하고나면 앱이 죽으면서 저 에러가 났다.

 

구글링을 하다가 https://stackoverrun.com/ko/q/12042505

 

RecyclerView 및 java.lang.IndexOutOfBoundsException 잘못된 뷰 홀더 어댑터 positionViewHolder

식료품 품목을 바인딩하는 리사이클 러 뷰가 있습니다. 항목을 추가하면 완벽하게 작동합니다. 그러나 항목을 삭제하려고하면 응용 프로그램이 충돌하고 IndexOutOfBoundsException 오류가 발생합니다

stackoverrun.com

이 글을 발견했다.

 

이렇게 인자로 넘어온 position을 그대로 썼었는데

int safePosition = holder.getAdapterPosition();

이렇게 선언하고

이렇게 safePosition을 쓰니까 해결됐다.

 

+ Recent posts