Banner+多条目适配器

package com.bawei.www.wangshuai11_19.Adpter;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.bawei.www.wangshuai11_19.Bean.Bean;
import com.bawei.www.wangshuai11_19.Bean.NewsResponse;
import com.bawei.www.wangshuai11_19.Dao;
import com.bawei.www.wangshuai11_19.R;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.youth.banner.Banner;

import java.util.ArrayList;
import java.util.List;

public class MyAdapter extends BaseAdapter {

    private Context context ;
    private List<NewsResponse.DataBean> list;
    private List<Bean.NewslistBean> bannerlist;
    private int ITEM_COUNT=2;
    private int ITEM_ONE=0;
    private int ITEM_TWO=1;
    private ImageLoader loader;
    private DisplayImageOptions options;



    public MyAdapter(Context context) {
        this.context = context;
        list = new ArrayList<>();
        bannerlist = new ArrayList<>();
        ImageLoaderConfiguration configuration =ImageLoaderConfiguration.createDefault(context);
        loader = ImageLoader.getInstance();
        loader.init(configuration);
        options = new DisplayImageOptions.Builder()
                .cacheOnDisk(true)
                .cacheInMemory(true)
                .build();

    }
    public boolean hasBunner(){
        return bannerlist.size()>0;
    }

    @Override
    public int getViewTypeCount() {
        return ITEM_COUNT;
    }

    @Override
    public int getItemViewType(int position) {
        if(position==0){
            return ITEM_ONE;
        }else{
            return ITEM_TWO;
       }
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public NewsResponse.DataBean getItem(int position) {
        return list.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if(getItemViewType(position)==ITEM_ONE){

            BViewHolder bh ;
            if(convertView==null){
                convertView = View.inflate(context, R.layout.item_banner, null);
                bh = new BViewHolder();
                bh.img_banner = convertView.findViewById(R.id.img_banner);
                convertView.setTag(bh);
            }else{
                bh = (BViewHolder) convertView.getTag();
            }
            bh.img_banner.setImageLoader(new com.youth.banner.loader.ImageLoader() {
                @Override
                public void displayImage(Context context, Object path, ImageView imageView) {
                    Bean.NewslistBean bean = (Bean.NewslistBean) path;
                    //loader.displayImage(bean.getPicUrl(),imageView,options);
                    loader.displayImage(bean.getPicUrl(),imageView,options);
                }
            });
            bh.img_banner.setImages(bannerlist);
            // bh.img_banner.setBannerTitles(AFragment.getTitles(bean));
            bh.img_banner.start();

        }else if(getItemViewType(position)==ITEM_TWO){
            ViewHolder vh ;
            if(convertView==null){
                convertView = View.inflate(context, R.layout.item, null);
                vh = new ViewHolder();
                vh.ttitle = convertView.findViewById(R.id.ttitle);
                vh.summery = convertView.findViewById(R.id.summery);
                vh.img = convertView.findViewById(R.id.img);
                convertView.setTag(vh);

            }else {
                vh = (ViewHolder) convertView.getTag();
            }
            vh.ttitle.setText(list.get(position).getNews_title());
            vh.summery.setText(list.get(position).getNews_summary());
            ImageLoader.getInstance().displayImage(list.get(position).getPic_url(),vh.img);
       }

        return convertView;
    }

    public void setData(List<NewsResponse.DataBean> data) {
        this.list = data;
        notifyDataSetChanged();
    }

    public void addData(List<Bean.NewslistBean> newslist) {
        this.bannerlist = newslist;
        notifyDataSetChanged();
    }


    class ViewHolder{
        ImageView img;
        TextView ttitle;
        TextView summery;
    }
    class BViewHolder{
        Banner img_banner;
    }
}

猜你喜欢

转载自blog.csdn.net/wangshuai_97/article/details/84323992