一直看见别的app中的listview加载多种样式,自己从来没有尝试去做,真正用到的时候才去研究,还是比较简单的!
1、设置数据格式
在list中设置一个字段来设置不同的样式listtype=1是加载新闻样式,listtype=0时加载广告的样式
2、设置样式
@Override
public int getItemViewType(int position) {
if (mygrid.get(position).getListtype()==1) {
return TYPE_1;
} else {
return TYPE_2;
}
}
@Override
public int getViewTypeCount() {
return 2;
}
3、getView
ViewHolder viewHolder = null;
ViewHolder1 holder1 = null;
int type = getItemViewType(position);
if (null == convertView) {
switch (type) {
case TYPE_1:
convertView = inflater.inflate(R.layout.activity_consult_item, null);
viewHolder = new ViewHolder();
viewHolder.headtitle = (RelativeLayout) convertView.findViewById(R.id.activity_head_title);
convertView.setTag(viewHolder);
break;
case TYPE_2:
convertView = inflater.inflate(R.layout.activity_adview, null);
holder1 = new ViewHolder1();
holder1.adView = (AdView) convertView.findViewById(R.id.adView);
convertView.setTag(holder1);
break;
default:
break;
}
} else {
switch (type) {
case TYPE_1:
viewHolder = (ViewHolder) convertView.getTag();
break;
case TYPE_2:
holder1 = (ViewHolder1) convertView.getTag();
break;
default:
break;
}
}
switch (type) {
case TYPE_1:
viewHolder.title.setText(mygrid.get(position).getTitle());
。。。。。。。
break;
case TYPE_2:
。。。。。
break;
default:
break;
}
return convertView;
}
class ViewHolder {
TextView id;
。。。。。
}
class ViewHolder1 {
AdView adView;
}
4、效果图