계속 오 용 된 ListView + CheckBox

1373 단어 안 드 로 이 드
우 리 는 ListView 가 Checkbox 와 결합 하 는 것 이 개발 에서 흔히 볼 수 있 는 수요 라 는 것 을 알 고 있 습 니 다. 이 수요 가 뚜렷 한 문 제 는 Checkbox 의 재 활용 문제 입 니 다. 재 활용 문제 로 인해 선택 한 checkbox 가 화면 에서 미끄러져 나 올 때 그 는 더 이상 선택 상태 가 아 닙 니 다. 우 리 는 모두 이 유 를 알 고 있 습 니 다.인터넷 검색 에서 찾 을 수 있 는 방법 은 새로 만 든 맵 의 데이터 구조 에 checkbox 의 선택 상 태 를 저장 하 는 것 입 니 다. checkbox 가 표 시 될 때 정확 한 상 태 를 checkbox 에 할당 하거나 ListView 에서 사용 하 는 bean 데이터 에 isChecked 필드 를 추가 하여 선택 한 상 태 를 저장 하 는 것 입 니 다. 우 리 는 항상 이렇게 합 니 다. 오늘 제 가 ListView 소스 코드 를 뒤 졌 을 때(정확히 AbsListView) 이렇게 하 는 것 이 바퀴 를 만 드 는 것 이라는 것 을 알 게 되 었 다.
   우선 ListView 에서 이러한 데이터 구 조 를 볼 수 있 습 니 다.
/**
 * Running state of which positions are currently checked
 */
SparseBooleanArray mCheckStates;

이것 이 바로 listView 내부 에서 제공 하 는 선택 한 상 태 를 저장 하 는 데이터 구조 입 니 다.
그 밖 에 이와 관련 된 api 도 있 습 니 다.
getCheckedItemCount()
getCheckedItemPositions()

아주 간단 한 예 입 니 다. 모두 가 알 아 볼 수 있 을 거 라 고 믿 습 니 다.

좋은 웹페이지 즐겨찾기