private class HomeAdapter extends BaseAdapter{
......
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view
ViewHolder holder
if(convertView==null){
view=View.inflate(UiUtils.getContext(), R.layout.item_app, null)
holder=new ViewHolder()
holder.item_icon=(ImageView) view.findViewById(R.id.item_icon)
holder.item_title=(TextView) view.findViewById(R.id.item_title)
holder.item_size=(TextView) view.findViewById(R.id.item_size)
holder.item_bottom=(TextView) view.findViewById(R.id.item_bottom)
holder.item_rating=(RatingBar) view.findViewById(R.id.item_rating)
view.setTag(holder)
}else{
view=convertView
holder=(ViewHolder) view.getTag()
}
AppInfo appInfo=datas.get(position)
holder.item_title.setText(appInfo.getName())
String size=Formatter.formatFileSize(UiUtils.getContext(), appInfo.getSize())
holder.item_size.setText(size)
holder.item_bottom.setText(appInfo.getDes())
float stars = appInfo.getStars()
holder.item_rating.setRating(stars)
String iconUrl = appInfo.getIconUrl()
// 显示图片的控件
bitmapUtils.display(holder.item_icon, HttpHelper.URL+"image?name="+iconUrl)
return view
}
......
}
static class ViewHolder{
ImageView item_icon
TextView item_title,item_size,item_bottom
RatingBar item_rating
}
- 这里给出第二种写法【方便抽取DefaultAdapter和BaseViewHolder进行快速开发】
private class HomeAdapter extends BaseAdapter{
......
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if(convertView==null){
holder=new ViewHolder();
}else{
holder=(ViewHolder) convertView.getTag();
}
AppInfo appInfo=datas.get(position);
holder.setData(appInfo);
return holder.getContentView();
}
......
}
static class ViewHolder{
ImageView item_icon;
TextView item_title,item_size,item_bottom;
RatingBar item_rating;
View contentView;
AppInfo appInfo;
public ViewHolder(AppInfo appInfo){
contentView = initView();
contentView.setTag(this);
}
public void setData(AppInfo appInfo){
this.appInfo = appInfo;
refreshView(appInfo);
}
public View getContentView(){
return contentView;
}
}
public View initView(){
View view;
view = View.inflate(UiUtils.getContext(), R.layout.item_app, null);
this.item_icon=(ImageView) view.findViewById(R.id.item_icon);
this.item_title=(TextView) view.findViewById(R.id.item_title);
this.item_size=(TextView) view.findViewById(R.id.item_size);
this.item_bottom=(TextView) view.findViewById(R.id.item_bottom);
this.item_rating=(RatingBar) view.findViewById(R.id.item_rating);
return view;
}
public void refreshView(AppInfo appInfo){
this.item_title.setText(appInfo.getName());
String size=Formatter.formatFileSize(UiUtils.getContext(), appInfo.getSize());
this.item_size.setText(size);
this.item_bottom.setText(appInfo.getDes());
float stars = appInfo.getStars();
this.item_rating.setRating(stars);
String iconUrl = appInfo.getIconUrl();
bitmapUtils.display(this.item_icon, HttpHelper.URL+"image?name="+iconUrl);
}