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

리스트뷰 getView() 와 convertView에 관해서 질문드려요

0 추천
public View getView(int position, View convertView, ViewGroup parent) {
		NoticeView itemView;
		if (convertView == null) {
			itemView = new NoticeView(mContext, mItems.get(position));
		} else {
			itemView = (NoticeView) convertView;

			itemView.setIcon(mItems.get(position).getIcon());
			itemView.setText(0, mItems.get(position).getData(0));
			itemView.setText(1, mItems.get(position).getData(1));
			itemView.setReadComplete(mItems.get(position).getReadable());
			itemView.setBuyOrSell(mItems.get(position).getBuytag());
		}

		return itemView;
	}

간단한 앱을 만들고 있는데요

스크롤을 내릴때 getview가 호출되는건 알겠는데 

else 아래에 데이터를 셋팅하는 부분 때문인지 스크롤을 하면 심하게 버벅이네요 ㅠㅠ

따로 데이터 셋팅하지 않고 기존에 쓰던 뷰를 빠르게 불러오는 방법은 없을까요?

고수님들 부탁드립니다 ㅠㅠ

박치킨 (180 포인트) 님이 2013년 9월 8일 질문

2개의 답변

0 추천
고수가 아니라 그런지 딱히..

getView 부분만 봐서는.. 크게 느려질만한 부분이 보이질 않네요;

ViewHolder class를 만들어서 widget들을 관리해주시고..

setIcon이 이미지를 넣어주는것 같은데 이미지 사이즈가 크다면 universal image loader로 불러 보세요..
Gruv-K (220 포인트) 님이 2013년 9월 9일 답변
0 추천
원래 질문과는 상관없는 내용이지만,

setIcon , setText ... 등 데이터 세팅하는 부분은  convertView 가 null 이든 아니든 항상 실행해야 합니다.

else 안에 있는 코드 일부를 밖으로 빼야 합니다.
익명사용자 님이 2013년 9월 9일 답변
...