- 작성시간 : 2011/07/14 19:38
- 퍼머링크 : jjunda.egloos.com/5002405
- 덧글수 : 0
가장 일반적인 방식.. 책에서 예제로 쓰이고.. 대부분 뭐 이방법으로 쓴다..
<일반적인방법>
View MyView = convertView;
if (MyView == null) {
LayoutInflater vi = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
MyView = vi.inflate(R.layout.musiclist, null);
}
ImageView iv = (ImageView) MyView.findViewById(R.id.album_img);
Bitmap albumArt = MusicList.getBitmapImage(mContext, Integer.parseInt((mAlbumartIDList.get(position))), 70, 70);
iv.setImageBitmap(albumArt);
TextView tv = (TextView) MyView.findViewById(R.id.musiclist_title);
tv.setText(mMusiceTitleList.get(position));
TextView tv1 = (TextView) MyView.findViewById(R.id.musiclist_artist);
tv1.setText(mSingerList.get(position));
return MyView;
그리고 이 방법은 이것저것 검색해보다가 찾은건데.. 불필요한 호출을 방지하여 view의 호출이 빠르게 일어난다고 한다..
근데.. 잘 모르겠음 ㅋㅋ
<빠른호출법>
View v = convertView;
ViewHolder holder;
if(v == null) {
holder = new ViewHolder();
LayoutInflater vi = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.musiclist, null);
holder.album_iv = (ImageView) v.findViewById(R.id.album_img);
holder.playing_iv = (ImageView)v.findViewById(R.id.current_playing_img);
holder.title_tv = (TextView) v.findViewById(R.id.musiclist_title);
holder.artist_tv = (TextView) v.findViewById(R.id.musiclist_artist);
v.setTag(holder);
}
else {
holder = (ViewHolder) v.getTag();
}
Bitmap albumArt = MusicList.getBitmapImage(mContext, Integer.parseInt((mAlbumartIDList.get(position))), 70, 70);
holder.album_iv.setImageBitmap(albumArt);
holder.title_tv.setText(mMusiceTitleList.get(position));
holder.artist_tv.setText(mSingerList.get(position));
return v;



최근 덧글