package a16.erin.list_banner_demo;
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.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.youth.banner.Banner;
import com.youth.banner.loader.ImageLoader;
import java.util.ArrayList;
import java.util.List;
/**
* Created by mamiaomiao on 17/8/17.
*/
public class MyAdapter extends BaseAdapter {
private List<BookDataBean.ResultBean.ImageListBean> list = new ArrayList<>();//banner下方图文显示条目的数据;
private final int banner_type = 0, text_type = 1, img_type = 2;//自定义的值,但是不能>=viewtype返回的值;
private Context context;
private DisplayImageOptions options;
//图片加载器
private com.nostra13.universalimageloader.core.ImageLoader loader= com.nostra13.universalimageloader.core.ImageLoader.getInstance();
public MyAdapter(Context context) {
this.context = context;
ImageLoaderConfiguration configuration=ImageLoaderConfiguration.createDefault(context);
loader.init(configuration);
options=new DisplayImageOptions.Builder()
.cacheOnDisk(true)
.cacheInMemory(true)
.build();
}
public void addData(List<BookDataBean.ResultBean.ImageListBean> list){
this.list.addAll(list);
notifyDataSetChanged();
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
//多条目展示
@Override
public int getItemViewType(int position) {
if(position==0){//显示banner
return banner_type;
}
// if (list.get(position).getType().equals("horizontalScrollCard")) {
// return banner_type;
// }
// if (list.get(position).getType().equals("textCard")) {
// return text_type;
// }
return img_type;
}
@Override
public int getViewTypeCount() {
return 3;
}
@Override
public View getView(int position, View convertView, final ViewGroup parent) {
//获取当前position对应的条目需要显示的视图类型
int type = getItemViewType(position);
ViewHolder1 viewHolder1 = null;
ViewHolder2 holder2 = null;
ViewHolder holder3=null;
if (convertView == null) {
switch (type) {
case banner_type:
convertView = View.inflate(context, R.layout.banner_laout, null);
viewHolder1 = new ViewHolder1(convertView);
convertView.setTag(viewHolder1);
break;
case text_type:
convertView = View.inflate(context, R.layout.text_item, null);
holder2 = new ViewHolder2(convertView);
convertView.setTag(holder2);
break;
case img_type:
convertView = View.inflate(context, R.layout.img_item, null);
holder3=new ViewHolder(convertView);
convertView.setTag(holder3);
break;
default:
break;
}
}else {
switch (type) {
case banner_type:
viewHolder1=(ViewHolder1)convertView.getTag();
break;
case text_type:
holder2 = (ViewHolder2)convertView.getTag();
break;
case img_type:
holder3=(ViewHolder)convertView.getTag();
break;
default:
break;
}
}
/************赋 值***********************/
switch (type) {
case banner_type:
viewHolder1.mybanner.setImageLoader(new ImageLoader() {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
BookDataBean.ResultBean.ImageListBean bean=(BookDataBean.ResultBean.ImageListBean)path;
//给轮播图加载网络图片;
loader.displayImage(bean.getImageUrl(),imageView,options);
}
});
//截取总数据里的前5条数据;
viewHolder1.mybanner.setImages(list.subList(0,5));
viewHolder1.mybanner.start();
break;
case text_type:
holder2 = (ViewHolder2)convertView.getTag();
break;
case img_type:
holder3=(ViewHolder)convertView.getTag();
loader.displayImage(list.get(position).getImageUrl(),holder3.myimg,options);
holder3.myimgtext.setText("id="+list.get(position).getId());
break;
default:
break;
}
return convertView;
}
public static class ViewHolder1 {
public View rootView;
public Banner mybanner;
public ViewHolder1(View rootView) {
this.rootView = rootView;
this.mybanner = (Banner) rootView.findViewById(R.id.mybanner);
}
}
public static class ViewHolder2 {
public View rootView;
public TextView mytext;
public ViewHolder2(View rootView) {
this.rootView = rootView;
this.mytext = (TextView) rootView.findViewById(R.id.mytext);
}
}
public static class ViewHolder {
public View rootView;
public ImageView myimg;
public TextView myimgtext;
public ViewHolder(View rootView) {
this.rootView = rootView;
this.myimg = (ImageView) rootView.findViewById(R.id.myimg);
this.myimgtext = (TextView) rootView.findViewById(R.id.myimgtext);
}
}
}
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.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.youth.banner.Banner;
import com.youth.banner.loader.ImageLoader;
import java.util.ArrayList;
import java.util.List;
/**
* Created by mamiaomiao on 17/8/17.
*/
public class MyAdapter extends BaseAdapter {
private List<BookDataBean.ResultBean.ImageListBean> list = new ArrayList<>();//banner下方图文显示条目的数据;
private final int banner_type = 0, text_type = 1, img_type = 2;//自定义的值,但是不能>=viewtype返回的值;
private Context context;
private DisplayImageOptions options;
//图片加载器
private com.nostra13.universalimageloader.core.ImageLoader loader= com.nostra13.universalimageloader.core.ImageLoader.getInstance();
public MyAdapter(Context context) {
this.context = context;
ImageLoaderConfiguration configuration=ImageLoaderConfiguration.createDefault(context);
loader.init(configuration);
options=new DisplayImageOptions.Builder()
.cacheOnDisk(true)
.cacheInMemory(true)
.build();
}
public void addData(List<BookDataBean.ResultBean.ImageListBean> list){
this.list.addAll(list);
notifyDataSetChanged();
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
//多条目展示
@Override
public int getItemViewType(int position) {
if(position==0){//显示banner
return banner_type;
}
// if (list.get(position).getType().equals("horizontalScrollCard")) {
// return banner_type;
// }
// if (list.get(position).getType().equals("textCard")) {
// return text_type;
// }
return img_type;
}
@Override
public int getViewTypeCount() {
return 3;
}
@Override
public View getView(int position, View convertView, final ViewGroup parent) {
//获取当前position对应的条目需要显示的视图类型
int type = getItemViewType(position);
ViewHolder1 viewHolder1 = null;
ViewHolder2 holder2 = null;
ViewHolder holder3=null;
if (convertView == null) {
switch (type) {
case banner_type:
convertView = View.inflate(context, R.layout.banner_laout, null);
viewHolder1 = new ViewHolder1(convertView);
convertView.setTag(viewHolder1);
break;
case text_type:
convertView = View.inflate(context, R.layout.text_item, null);
holder2 = new ViewHolder2(convertView);
convertView.setTag(holder2);
break;
case img_type:
convertView = View.inflate(context, R.layout.img_item, null);
holder3=new ViewHolder(convertView);
convertView.setTag(holder3);
break;
default:
break;
}
}else {
switch (type) {
case banner_type:
viewHolder1=(ViewHolder1)convertView.getTag();
break;
case text_type:
holder2 = (ViewHolder2)convertView.getTag();
break;
case img_type:
holder3=(ViewHolder)convertView.getTag();
break;
default:
break;
}
}
/************赋 值***********************/
switch (type) {
case banner_type:
viewHolder1.mybanner.setImageLoader(new ImageLoader() {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
BookDataBean.ResultBean.ImageListBean bean=(BookDataBean.ResultBean.ImageListBean)path;
//给轮播图加载网络图片;
loader.displayImage(bean.getImageUrl(),imageView,options);
}
});
//截取总数据里的前5条数据;
viewHolder1.mybanner.setImages(list.subList(0,5));
viewHolder1.mybanner.start();
break;
case text_type:
holder2 = (ViewHolder2)convertView.getTag();
break;
case img_type:
holder3=(ViewHolder)convertView.getTag();
loader.displayImage(list.get(position).getImageUrl(),holder3.myimg,options);
holder3.myimgtext.setText("id="+list.get(position).getId());
break;
default:
break;
}
return convertView;
}
public static class ViewHolder1 {
public View rootView;
public Banner mybanner;
public ViewHolder1(View rootView) {
this.rootView = rootView;
this.mybanner = (Banner) rootView.findViewById(R.id.mybanner);
}
}
public static class ViewHolder2 {
public View rootView;
public TextView mytext;
public ViewHolder2(View rootView) {
this.rootView = rootView;
this.mytext = (TextView) rootView.findViewById(R.id.mytext);
}
}
public static class ViewHolder {
public View rootView;
public ImageView myimg;
public TextView myimgtext;
public ViewHolder(View rootView) {
this.rootView = rootView;
this.myimg = (ImageView) rootView.findViewById(R.id.myimg);
this.myimgtext = (TextView) rootView.findViewById(R.id.myimgtext);
}
}
}