public class myAdapter extends BaseAdapter implements ListAdapter {
private Context mContext;
private List<Map<String, Object>> listData;
LayoutInflater mInflater;
public myAdapter(Context mContext, List<Map<String, Object>> listData) {
super();
this.mInflater = LayoutInflater.from(mContext);
this.mContext = mContext;
this.listData = listData;
}
// 内部类起优化作用
public final class viewHolder {
public TextView mTitle;
public TextView mAuthor;
public ImageView mImage;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return listData.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertview, ViewGroup arg2) {
viewHolder viewholder = null;
if (convertview == null || convertview.getTag() == null) {
viewholder = new viewHolder();
convertview = mInflater.inflate(R.layout.listitem, null);
viewholder.mAuthor = (TextView) convertview
.findViewById(R.id.author);
viewholder.mTitle = (TextView) convertview
.findViewById(R.id.title);
viewholder.mImage = (ImageView) convertview
.findViewById(R.id.img);
convertview.setTag(viewholder);
} else {
viewholder = (viewHolder) convertview.getTag();
}
viewholder.mTitle.setText((CharSequence) listData.get(position)
.get("title"));
viewholder.mAuthor.setText((CharSequence) listData.get(position)
.get("author"));
viewholder.mImage.setImageBitmap((Bitmap) listData.get(position)
.get("bmp"));
return convertview;
}
}