마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

리사이클러 뷰와 데이터베이스 연동 질문 / RecyclerView: Inconsistency detected. Invalid item position

0 추천
안녕하세요 제가 진행 중인 프로젝트에서 아리송한 에러가 발생해서 질문드립니다.

저는 Room으로 구현된 DB에 데이터를 저장 중입니다. 이 데이터는 날짜 정보 또한 포함하고 있는데요,

메인화면에서 통계창버튼을 누르면  "오늘"의 데이터들을 리사이클러뷰로 보여주고 있습니다.

여기까지는 아주 문제가 없는데, 추가적인 기능이 CALENDAR VIEW에서 다른 날짜를 클릭하면 그 날짜의 데이터들로 위의 리사이클러 뷰를 업데이트해주고 있습니다.

저는 Calendar View의 setOnDataChanged의 onSelectedDayChange안에서, asynctask를 이용하여 기존 adapter에 db에서 빼온 새로운 데이터들을 넣어주고 notifyDataSetChanged 함수를 이용하였습니다.

문제는 실행을 하면 원했던 기능이 잘 구현되기는 합니다. 다만, 어떤 날짜를 연속으로 여러번 클릭하면 갑자기 리사이클러뷰에 아무것도 뜨지 않기도 하고, 그 상황에서 다시 또 여러번 누르면 리사이클러뷰가 데이터를 보여주기도 하고 이런 것을 반복한다는 것입니다. 또 날짜를 누르다보면 앱이 재시작되거나 죽어버리기도 합니다. 무엇이 문제일까요 ㅠㅠ...

에러창에서는 이런 말이 나타납니다.

Inconsistency detected. Invalid item position 2(offset:2).state:7 androidx.recyclerview.widget.RecyclerView{4e5d138 VFED..... .... 이런 문구 하나와

E/AndroidRuntime:     at android.view.ViewGroup.layout(ViewGroup.java:6584) 이런 문구 하나가 확인됩니다.
c 에넘 (340 포인트) 님이 2020년 3월 1일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...