##列表+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);
}
}
}