Android ListView(item)條目中添加廣告(其他佈局)

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章