原文http://blog.163.com/itsmallbird@126/blog/static/16913910920114304304841/?latestBlog
class ActiveCenAdapter extends BaseAdapter{
private Context context;
private ArrayList<News> infos;
private AsyncImageLoader asyncImageLoader;
private ListView listView;
private static final int TYPE_MAX_COUNT=4;
LayoutInflater vi;
public ActiveCenAdapter(Context context, ArrayList<News> infos,ListView listView) {
this.context = context;
this.infos = infos;
asyncImageLoader = new AsyncImageLoader();
this.listView = listView;
vi = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
if(infos != null && infos.size()>0){
return infos.size();
}
return 0;
}
@Override
public Object getItem(int position) {
if(infos != null && infos.size()>0){
return infos.get(position);
}
return null;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public int getItemViewType(int position) { //here is very important
if(position ==0){
return 0;
}
switch(infos.get(position).getType()){
case 3:
return News.TYPE_FORWARD_VIDEO;
case 1:
return News.TYPE_VIDEO;
case -1:
return News.TYPE_EVENT_TIP;
case 4:
return News.TYPE_ILIKE_VIDEO;
default:
return 0;
}
}
@Override
public int getViewTypeCount() { //here is very important
return TYPE_MAX_COUNT+1;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final News info = infos.get(position);
int type = info.getType();
final ListHolder listHolder;
if (convertView == null) {
listHolder = new ListHolder();
switch(type){
case News.TYPE_FORWARD_VIDEO:
case News.TYPE_ILIKE_VIDEO:
convertView = vi.inflate(R.layout.idol_bc_list_item, null);
listHolder.portrait = (ImageView) convertView.findViewById(R.id.portrait);
listHolder.nickname = (TextView) convertView.findViewById(R.id.nickname);
。。。。。。。。。
break;
case News.TYPE_VIDEO:
convertView = vi.inflate(R.layout.idol_create_list_item, null);
。。。。。。。。。
listHolder.portrait = (ImageView) convertView.findViewById(R.id.portrait);
istHolder.comefrom = (TextView) convertView.findViewById(R.id.comefrom);
break;
case News.TYPE_EVENT_TIP:
convertView = vi.inflate(R.layout.sys_info_list_item, null);
listHolder.portrait = (ImageView) convertView.findViewById(R.id.portrait);
。。。。。。。
listHolder.sufinfo = (TextView) convertView.findViewById(R.id.suf_info);
break;
case 0:
convertView = new View(context);
break;
default:
convertView = new View(context);
break;
}
convertView.setTag(listHolder);
} else {
listHolder = (ListHolder)convertView.getTag();
}
if(type==News.TYPE_FORWARD_VIDEO ||type==News.TYPE_ILIKE_VIDEO){
。。。。。。
}else if(type==News.TYPE_VIDEO){
。。。。。。
}else if(type==News.TYPE_EVENT_TIP){
}else if(type==0){
}else{
}
return convertView;
}
class ListHolder implements Serializable{
ImageView portrait;
TextView nickname;
TextView preinfo;
TextView atteninfo;
TextView sufinfo;
TextView timepost;
TextView comment;
ImageView videoimage;
TextView videotitle;
TextView videoowner;
TextView viewtime;
TextView viewcount;
TextView redirectcount;
TextView likecount;
TextView status;
TextView comefrom;
}
}