package com.mcxtzhang.cstnorecyclelistview.other;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.mcxtzhang.cstnorecyclelistview.R;
import com.mcxtzhang.cstnorecyclelistview.bean.NestBean;
import java.util.List;
/**
* 介绍:嵌套第二层Adapter
* 本类用于验证重写onMeasure()方法的ListView,性能有多低。
* getView会被重复调用多次
* 作者:zhangxutong
* 邮箱:zhangxutong@imcoming.com
* 时间: 2016/9/10.
*/
public class NestAdapter extends BaseAdapter {
private static final String TAG = "zxt/NestAdapter";
private List<NestBean> mDatas;
private Context mContext;
private LayoutInflater mInflater;
public NestAdapter(List<NestBean> mDatas, Context mContext) {
this.mDatas = mDatas;
this.mContext = mContext;
mInflater = LayoutInflater.from(mContext);
}
@Override
public int getCount() {
return null != mDatas ? mDatas.size() : 0;
}
@Override
public Object getItem(int position) {
return null != mDatas ? mDatas.get(position) : null;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Log.d(TAG, "嵌套第二层的 getView() called with: position = [" + position + "], convertView = [" + convertView + "], parent = [" + parent + "]");
NestViewHolder holder;
if (null == convertView) {
convertView = mInflater.inflate(R.layout.item_nest_lv, parent, false);
holder = new NestViewHolder();
holder.nestIv = (ImageView) convertView.findViewById(R.id.nestIv);
convertView.setTag(holder);
} else {
holder = (NestViewHolder) convertView.getTag();
}
NestBean nestBean = mDatas.get(position);
Glide.with(mContext)
.load(nestBean.getUrl())
.into(holder.nestIv);
return convertView;
}
private static class NestViewHolder {
ImageView nestIv;
}
}