listview多条目案例

//继承BaseAdapter 重写方法

public class MyAdapter extends BaseAdapter{
//定义标记
private int ONE_TYPE = 0;
private int TWO_TYPE = 1;
private int THREE_TYPE = 2;
Context context;
List<MyJson.ResultBean.DataBean> list;
private final DisplayImageOptions options;

public MyAdapter(Context context, List<MyJson.ResultBean.DataBean>` list) {
    this.context=context;
    this.list=list;
    options = new DisplayImageOptions.Builder()
            .cacheInMemory(true)//使用内存缓存
            .cacheOnDisk(true)//使用磁盘缓存
            .showImageOnLoading(R.mipmap.ic_launcher)//设置正在下载的图片
            .showImageForEmptyUri(R.mipmap.ic_launcher)//url为空或请求的资源不存在时
            .showImageOnFail(R.mipmap.ic_launcher)//下载失败时显示的图片
            .bitmapConfig(Bitmap.Config.RGB_565)//设置图片色彩模式 1px=2字节
            .imageScaleType(ImageScaleType.EXACTLY)//设置图片的缩放模式
            //.displayer(new RoundedBitmapDisplayer(100))//设置圆角 30代表半径 自定义
            .build();
}
//返回视图类型条数
@Override
public int getViewTypeCount() {
    return 3;
}
//判断类型
@Override
public int getItemViewType(int position) {
    String thu1 = list.get(position).getThumbnail_pic_s();
    String thu2 = list.get(position).getThumbnail_pic_s02();
    String thu3 = list.get(position).getThumbnail_pic_s03();
   if (thu1!=null && thu2==null && thu3==null){
       return ONE_TYPE;
   }else if (thu1!=null && thu2!=null && thu3==null){
       return TWO_TYPE;
   }else {
       return THREE_TYPE;
   }
}

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

@Override
public Object getItem(int i) {
    return list.get(i);
}

@Override
public long getItemId(int i) {
    return i;
}
//根据类型设置布局
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
    int type = getItemViewType(i);
    if (type==ONE_TYPE){
        VHolder1 holder1;
        if (view==null){
            view=View.inflate(context, R.layout.list1,null);
            holder1=new VHolder1();
            holder1.img1=view.findViewById(R.id.img);
            holder1.name=view.findViewById(R.id.list_name);
            view.setTag(holder1);
        }else {
            holder1=(VHolder1) view.getTag();
        }
        holder1.name.setText(list.get(i).getTitle());
        ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s(),holder1.img1,options);
        return view;
    }else if (type==TWO_TYPE){
        VHolder2 holder2;
        if (view==null){
            view=View.inflate(context, R.layout.list2,null);
            holder2=new VHolder2();
            holder2.img1=view.findViewById(R.id.img);
            holder2.img2=view.findViewById(R.id.img1);
            holder2.name=view.findViewById(R.id.list_name);
            view.setTag(holder2);
        }else {
            holder2=(VHolder2) view.getTag();
        }
        holder2.name.setText(list.get(i).getTitle());
        ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s(),holder2.img1,options);
        ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s02(),holder2.img2,options);
        return view;
    }else {
        VHolder3 holder3;
        if (view==null){
            view=View.inflate(context, R.layout.list3,null);
            holder3=new VHolder3();
            holder3.img1=view.findViewById(R.id.img);
            holder3.img2=view.findViewById(R.id.img1);
            holder3.img3=view.findViewById(R.id.img2);
            holder3.name=view.findViewById(R.id.list_name);
            view.setTag(holder3);
        }else {
            holder3=(VHolder3) view.getTag();
        }
        holder3.name.setText(list.get(i).getTitle());
        ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s(),holder3.img1,options);
        ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s02(),holder3.img2,options);
        ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s03(),holder3.img3,options);
        return view;
    }
}
class VHolder1{
    ImageView img1;
    TextView name;
}
class VHolder2{
    ImageView img1;
    ImageView img2;
    TextView name;
}
class VHolder3{
    ImageView img1;
    ImageView img2;
    ImageView img3;
    TextView name;
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值