2011-09-11 7 views
0

데이터 (제목, 날짜, 이미지)를 목록보기에 바인딩하는 사용자 지정 어댑터가 있습니다. 모든 것이 잘 작동하지만 목록 뷰를 스크롤하면 어댑터가 데이터를리스트 뷰에 다시 바인드하는 것 같습니다. 데이터를 채우거나 복제하지는 않지만 동일한 데이터 위치에 씁니다. 그런 것, 특히 이미지를 제시 할 때 listview 스크롤이 원활하지 않기 때문에 매우 성가시다. 그렇다면 어떻게하면 어댑터가 목록보기에서 데이터를 다시 바인딩 할 수 있습니까?스크롤하는 동안 사용자 지정 어댑터가 목록보기로 데이터를 다시 바인딩

감사합니다.

답변

0

그래서 어떻게하면 어댑터를 중지하여 목록보기에서 데이터를 다시 바인딩 할 수 있습니까?

ListView을 스크롤 할 수 없도록 모든 사용자의 손가락을 부러 뜨리십시오.

또는 bindView() 방법에서 더 효율적으로 작업하거나 바인딩 용으로 사용하는 다른 작업 (예 : ViewBinder)을 수행하십시오. 예를 들어, 비트 맵을 캐시 (SoftReferences 등을 통해)로 유지하면 디스크에서 다시로드 할 필요가 없습니다.

+0

공공보기 bindData (보기보기, INT 위치) { \t (data.get (위치) == NULL) { \t \t 반환 보면; \t} 비디오 항목 = data.get (위치); aq = new AQuery (보기); aq.id (R.id.title) .text (item.getTitle()); aq.id (R.id.date) .text (item.getDate()); aq.id (R.id.thumb) .image (item.getImage(), false, true, 100, R.drawable.icon); 돌아 가기보기; } – Maverick

+0

위의 코드는 두 개의 텍스트 뷰와 한 개의 이미지 뷰로 값을 설정하는 코드입니다. 나는 이것을 위해 안드로이드 쿼리 라이브러리를 사용한다. 이 코드는리스트 뷰를 스크롤 할 때마다 실행됩니다. – Maverick

+0

@Maverick : 물론 ListView를 스크롤 할 때마다 실행됩니다. 그것이'AdapterView'의 핵심입니다. Traceview를 사용하면 코드에서 느린 부분을 구체적으로보고 수정할 수 있습니다. – CommonsWare

관련 문제