package com.example.lianxi4;
import android.content.Context;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.ArrayList;
import java.util.List;
public class ContentAdapter extends BaseAdapter {
private List<BannerBean.DataBean> mBanner;
private List<NewsBean.ResultBean> mNews;
private Context context;
private final int ITEM_COUNT = 2;
private final int BANNER_ITEM = 0;
private final int NEWS_ITEM = 1;
public ContentAdapter(Context context) {
this.context = context;
//实例化数据
mBanner = new ArrayList<>();
mNews = new ArrayList<>();
}
//设置banner的数据
public void setmBanner(List<BannerBean.DataBean> banner){
//清空mbanner数据
mBanner.clear();
//判断banner里的数据是否为空 没有就加上
if(banner!=null){
//如果不为空把banner的数据交到mbaner里面
mBanner.addAll(banner);
}
//刷新以下数据
notifyDataSetChanged();
}
//设置news的数据
public void setmmNews(List<NewsBean.ResultBean> news){
//清空news数据
mNews.clear();
//判断news里的数据是否为空 没有就加上
if(news!=null){
//如果不为空把banner的数据交到mbaner里面
mNews.addAll(news);
}
//刷新以下数据
notifyDataSetChanged();
}
//追加新闻的数据
public void addNews(List<NewsBean.ResultBean> news){
if(news!=null){
mNews.addAll(news);
}
notifyDataSetChanged();
}
//判断是否有banner
public boolean HasBanner(){
return mBanner.size()>0;
}
//两种
@Override
public int getViewTypeCount() {
return ITEM_COUNT;
}
//下标为0的时候 选择Banner
@Override
public int getItemViewType(int position) {
return position==BANNER_ITEM&&HasBanner()?BANNER_ITEM:NEWS_ITEM;
}
//new的下标
@Override
public int getCount() {
return HasBanner()?mNews.size()+1:mNews.size();
}
@Override
public NewsBean.ResultBean getItem(int position) {
return mNews.get(HasBanner()?position - 1:position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(getItemViewType(position)==BANNER_ITEM){
BannerViewHdoler hdoler;
if(convertView==null){
convertView = LayoutInflater.from(context).inflate(R.layout.item_banner,parent,false);
hdoler = new BannerViewHdoler(convertView);
}else{
hdoler = (BannerViewHdoler) convertView.getTag();
}
hdoler.BindBanner(context,mBanner);
}
else{
if(getItemViewType(position)==NEWS_ITEM) {
NewsViewHolder holder;
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.item_news, parent, false);
holder = new NewsViewHolder(convertView);
} else {
holder = (NewsViewHolder) convertView.getTag();
}
holder.NewsData(getItem(position));
}
}
return convertView;
}
class BannerViewHdoler{
ViewPager pager;
public BannerViewHdoler(View view){
pager = view.findViewById(R.id.banner);
view.setTag(this);
}
public void BindBanner(Context context,List<BannerBean.DataBean> bbb){
pager.setAdapter(new ViewPagerAdater(mBanner,context));
}
}
class NewsViewHolder{
TextView title,date;
ImageView icon;
public NewsViewHolder(View view){
title = view.findViewById(R.id.title);
date = view.findViewById(R.id.date);
icon = view.findViewById(R.id.pager);
view.setTag(this);
}
public void NewsData(NewsBean.ResultBean nnn){
title.setText(nnn.getName());
date.setText(nnn.getSummary());
ImageLoader.getInstance().displayImage(nnn.getImageUrl(),icon);
}
}
}