Android ListView(item)條目中添加廣告(其他佈局)也就是佈局的改變而已。
好了,思想+代碼。
adapter代碼:
public class NewsAdapter extends BaseAdapter {
private Context context;
private List<NewsEntity> entityList;
private ImageLoader imageLoader;
private NewsEntity newsEntity;
private AdvEntity advEntity;
private int v;
public NewsAdapter() {
}
public NewsAdapter(Context context, List<NewsEntity> entityList) {
this.context=context;
this.entityList=entityList;
imageLoader=new ImageLoader();
}
@Override
public int getCount() {
return entityList.size();
}
@Override
public Object getItem(int position) {
return entityList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView==null){
viewHolder=new ViewHolder();
if (position==5){
convertView=View.inflate(context,R.layout.advertisement_item,null);
viewHolder.configAdv= (ImageView) convertView.findViewById(R.id.config_adv_btn);
viewHolder.sureAdv= (ImageView) convertView.findViewById(R.id.sure_adv_btn);
}else{
convertView=View.inflate(context, R.layout.item_news,null);
viewHolder.title= (TextView) convertView.findViewById(R.id.title_news);
viewHolder.contact= (TextView) convertView.findViewById(R.id.contact_news);
viewHolder.ctime= (TextView) convertView.findViewById(R.id.ctime_news);
viewHolder.image= (ImageView) convertView.findViewById(R.id.image_news);
}
convertView.setTag(viewHolder);
}else {
viewHolder= (ViewHolder) convertView.getTag();
}
if (position==5){
viewHolder.sureAdv.setImageResource(R.mipmap.two);
}else{
newsEntity= (NewsEntity) getItem(position);
viewHolder.title.setText(newsEntity.getTitle());
viewHolder.contact.setText(newsEntity.getContact());
viewHolder.ctime.setText(newsEntity.getCtime());
viewHolder.image.setImageResource(R.mipmap.ic_launcher);
String url=entityList.get(position).image;
viewHolder.image.setTag(url);
imageLoader.showImageByAsyncTask(viewHolder.image,url);
}
return convertView;
}
class ViewHolder{
TextView title;
TextView contact;
TextView ctime;
ImageView image;
ImageView sureAdv;
ImageView configAdv;
}
}
注意:關鍵代碼就是其中的
if (position==5){
convertView=View.inflate(context,R.layout.advertisement_item,null);
viewHolder.configAdv= (ImageView) convertView.findViewById(R.id.config_adv_btn);
viewHolder.sureAdv= (ImageView) convertView.findViewById(R.id.sure_adv_btn);
}else{
convertView=View.inflate(context, R.layout.item_news,null);
viewHolder.title= (TextView) convertView.findViewById(R.id.title_news);
viewHolder.contact= (TextView) convertView.findViewById(R.id.contact_news);
viewHolder.ctime= (TextView) convertView.findViewById(R.id.ctime_news);
viewHolder.image= (ImageView) convertView.findViewById(R.id.image_news);
}
convertView.setTag(viewHolder);
}else {
viewHolder= (ViewHolder) convertView.getTag();
}
if (position==5){
viewHolder.sureAdv.setImageResource(R.mipmap.two);
}else{
newsEntity= (NewsEntity) getItem(position);
viewHolder.title.setText(newsEntity.getTitle());
viewHolder.contact.setText(newsEntity.getContact());
viewHolder.ctime.setText(newsEntity.getCtime());
viewHolder.image.setImageResource(R.mipmap.ic_launcher);
String url=entityList.get(position).image;
viewHolder.image.setTag(url);
imageLoader.showImageByAsyncTask(viewHolder.image,url);
}
判斷條目position,改變佈局。
注意:這裏我是直接viewHolder.sureAdv.setImageResource(R.mipmap.two);上去的,也可以傳參數加載。
思想就是,找到要換佈局的條目potion,判斷改變佈局,然後添加數據。
注意:bug解決
Android 解決ListView插入其他佈局條目(item或廣告)刪掉數據的問題
http://blog.csdn.net/aierjun/article/details/54317796