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

CustomAdapter 내의 이미지로드 코드가 왜이렇게 많이 로드될까요 ㅜㅜ

0 추천

징검다리 연휴 사이에 교육장에 출석해서 또다시 프로젝트에 매달리고있습니다 @_@

 

이번 질문은 사진 먼저 보시겠습니다 ㅜ.ㅜ

CustomAdapter 내에서 ImageView 에 bitmap를 할당해줄 때 호출해주는 메서드인데요.

보시는바와 같이 CustomAdapter getView메서드가 호출될 때마다 콘솔에 구문을 띄워주도록 되어있습니다.

 

문제는 이게.. 서버DB에서 단 3줄의 데이터값만 불러올때도..

이렇게 미친듯이 콘솔을 찍어대고(메서드를 호출하고) 있네요 ㅜ_ㅜ

보여드린만큼만 찍히는게 아니라 데이터가 3개였을때 열대여섯번이 찍힙니다. ㅜㅜ

 

상단 이미지의 뷰에서 :

버튼별로 현재 데이터를 3가지 방식으로 호출하고 (ex: 즐겨찾기목록, 구매목록, 판매목록을 각각 호출)

호출한 뒤 동일한 AsyncTask에서 작업하는걸 switch구문으로 구분해주고 있는데

switch구문 때문에 이렇게 계속해서 이미지 호출이 되는걸까요?

 

웃기는건 지금 url로 이미지를 로드하는 코드는 맨 좌측의 즐겨찾기목록과 관련된 Adapter에만 삽입되어있는데

다른 버튼, 구매목록 호출버튼과 판매목록 호출버튼을 눌렀을때에도 디코드 어쩌고가 찍혀나옵니다 ㅜㅜ

그래서 구매목록과 판매목록은 단지 String값만 받아와서 출력해주도록 구현되어있는데도

즐겨찾기와 관련된 이미지를 불러오느라 구매목록과 판매목록에 대한 목록 출력이 느려집니다 ㅜㅜ

 

왜이럴까요..Ora 도와주시어요

 

kitchu (170 포인트) 님이 2013년 6월 7일 질문
이 시점에 가장 간절하게 궁금한건.. CustomAdapter의 getView() 메서드가 호출되는 순간이 대체 언제인가요? 언제길래 다른 버튼을 눌렀을때에도 호출되는거야 ㅜ.ㅜ 흑흑

1개의 답변

0 추천
getView() 메소드가 아이템당 한 번만 호출된다는 보장은 없습니다.

보통은 레이아웃 크기 계산할 때 한 번, 실제 뷰를 화면에 표시할 때 한 번 호출되는 것 같은데,

공식 문서에 관련 언급이 없으므로 더 많이 호출될 수도 있습니다.
익명사용자 님이 2013년 6월 7일 답변
...