列表+轮播 adapter

##列表+banner adapter

public class Tab1adapter extends BaseAdapter {
    private Context context;
    private List<NewBean.NewData> news;
    private List<BannerBean.DataBean> banner;
    public Tab1adapter(Context context) {
        this.context = context;
        news = new ArrayList<>();
        banner = new ArrayList<>();
    }

    public void setBanner(List<BannerBean.DataBean> banner) {
        if (banner!=null) {
            this.banner = banner;
            notifyDataSetChanged();
        }
    }

    public void setNews(List<NewBean.NewData> news) {
        this.news = news;
        notifyDataSetChanged();
    }
public void addNews(List<NewBean.NewData> news){
        this.news.addAll(news);
        notifyDataSetChanged();
}
    @Override
    public int getCount() {
        return banner.size()>0?news.size()+1:news.size();
    }

    @Override
    public Object getItem(int position) {
        if (banner.size()>0){
            if (position==0){
                return null;
            }
            return news.get(position-1);
        }
        return news.get(position);
    }

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

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

    @Override
    public int getItemViewType(int position) {
if (banner.size()>0&&position==0){
    return 0;
}
        return 1;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (getItemViewType(position)==0){
            BannerViewHolder bannerViewHolder;
            if (convertView==null){
                convertView = LayoutInflater.from(context).inflate(R.layout.tab1_pager_item,parent,false);
                bannerViewHolder = new BannerViewHolder(convertView);
            }else {
                bannerViewHolder = (BannerViewHolder) convertView.getTag();
            }
            bannerViewHolder.bindbanner(/*banner*/);
        }else {
            ViewHolder viewHolder;
            if (convertView==null){
                convertView = LayoutInflater.from(context).inflate(R.layout.tab1_item,parent,false);
                viewHolder = new ViewHolder(convertView);
            }else {
                viewHolder = (ViewHolder) convertView.getTag();
            }
            viewHolder.bindNew((NewBean.NewData) getItem(position));
        }

        return convertView;
    }
    class BannerViewHolder{
        //int i=0;
        ViewPager bannerpager;
        Banneradapter banneradapter;
        @SuppressLint("HandlerLeak")
        Handler handler = new Handler(){
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                if (msg.what==1){
                    /*i = bannerpager.getCurrentItem();
                    ++i;*/
                    //i++;
                    bannerpager.setCurrentItem(bannerpager.getCurrentItem()+1);
                    handler.sendEmptyMessageDelayed(1,3000);
                }
            }
        };
        public BannerViewHolder(View convertView) {
            bannerpager = convertView.findViewById(R.id.bannerpager);
            banneradapter = new Banneradapter();
            bannerpager.setAdapter(banneradapter);
            //bannerpager.setCurrentItem(200);
            convertView.setTag(this);

        }

        public void bindbanner(/*List<BannerBean.DataBean> banner*/) {
            handler.removeMessages(1);
            banneradapter.setList(banner);
            handler.removeMessages(1, null);
            bannerpager.setCurrentItem(200);
            //i=bannerpager.getCurrentItem();
            handler.sendEmptyMessageDelayed(1,3000);
        }
    }
    class ViewHolder{
        TextView name;
        ImageView img;

        public ViewHolder(View convertView) {
            name = convertView.findViewById(R.id.name);
            img = convertView.findViewById(R.id.img);
            convertView.setTag(this);
        }

        public void bindNew(NewBean.NewData item) {
            name.setText(item.getName());

            ImageLoader.getInstance().displayImage(item.getImageUrl(),img);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_44022413/article/details/85156153
今日推荐