2

목록에 표시된 완전한 DB 테이블 프로젝트를 시작하기 전에 DB 데이터가 변경 될 때 UI에 어떤 일이 발생하는지 더 잘 이해하고 싶습니다.Android - CursorAdapter에서 커서를 변경하면 UI에 어떤 영향을 줍니까?

커서 어댑터를 사용하여 1000 개의 항목 목록을 보여주는 것을 상상해보십시오. 이제 일부 행이 목록에 추가/삭제됩니다. 이제 새 커서를 커서 어댑터에로드해야합니다 (changeCursor 사용).

사용자에게 표시되는 목록 (ListView)은 어떻게됩니까? 사용자에게이 재로드가 표시됩니까? 목록은 같은 장소에 있습니까?

답변

4

빠른 테스트 후 어댑터가 위치를 탐색하는 것처럼 보입니다.

커서를 바꾼 후 어댑터는 이전 위치에 머물러 있습니다.

새 커서의 사용 가능한 항목이 적어 위치가 적을 경우 마지막으로 표시되는 항목은 커서의 마지막 항목이됩니다.

기본적으로 목록은 마지막으로 표시 될 때까지 항목이 변경되지 않는 한 시각적으로 이동하지 않습니다. 기술적 인 것들에 관해서는


: 모든 changeCursor

먼저 swapCursorchangeCursor 또한 이전의 커서를 닫고 있다는 것을 유일한 차이점과 같은 역할을합니다.

swapCursor이 호출되고 새 커서가 null이 아니면 notifyDataSetChanged이 호출됩니다.

스왑 전에 convertViews (재사용 가능보기)을 작성한 경우 표시보기에 bindView이 호출되어 텍스트/이미지를 변경하거나보기에 바인딩하는 경우. 그 변화는 분명히 사용자에게 보여집니다.

그러나보기가 충분하지 않은 경우 newView이 호출되고보기는 위와 같이 을 호출하기 전에 만들어집니다. 새 항목이 목록에 추가되므로 사용자에게 다시 표시됩니다.

+0

메모리 목록에서 ListAdapter를 사용하는 사람으로서 나는 커서의 변경과 목록의 변경간에 큰 차이가 없다는 것을 사용자의 대답으로 이해합니다. 감사. –