안드로이드 recyclerview 에 관한 질문
조회수 4955회
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
setHasStablesIds(boolean)메소드는 adapter에 연결되는 각 아이템 항목에 대해서 고유(unique)한 아이디를 부여하겠다고 명시하는 메소드입니다.
리스트의 데이터가 변화되었을때 notifyDataSetChanged를 호출해도 setHasStablesIds(true)로 선언했다면 해당 아이템의 id가 바뀌지 않는다고 하네요.
대신 setHasStablesIds(true) 로 해도 getItemId를 override해서 구현하지 않으면 NO_ID가 return 될거에요.
unique한 itemId를 부여해서 getItemId를 사용하는 이유는 데이터의 수정, 삭제, 검색등의 여러가지 이유가 있을수 있습니다.
example)
class Car { int number; String name; }
@Override public long getItemId(int position){ Car car = mListOfCars.get(position); return (car.name).hashcode(); }
이런식으로 고유한 id를 만들어서 넘길 수 있습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자 -
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
-
댓글 입력