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 android.widget.TextView; import com.bumptech.glide.Glide; import com.mcxtzhang.cstnorecyclelistview.R; import com.mcxtzhang.cstnorecyclelistview.bean.TestBean; import java.util.List; /** * 介绍:嵌套第一层Adapter * 本类用于验证重写onMeasure()方法的ListView,性能有多低。 * getView会被重复调用多次 * 作者:zhangxutong * 邮箱:zhangxutong@imcoming.com * 时间: 2016/9/10. */ public class LvAdapter extends BaseAdapter { private static final String TAG = "zxt/LvAdapter"; private List<TestBean> mDatas; private Context mContext; private LayoutInflater mInflater; public LvAdapter(List<TestBean> 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, "嵌套第1层的 getView() called with: position = [" + position + "], convertView = [" + convertView + "], parent = [" + parent + "]"); LvViewHolder holder; if (null == convertView) { convertView = mInflater.inflate(R.layout.item_list_view, parent, false); holder = new LvViewHolder(); holder.tv = (TextView) convertView.findViewById(R.id.tv); holder.iv = (ImageView) convertView.findViewById(R.id.iv); holder.lv = (ListViewForScrollView) convertView.findViewById(R.id.lv2); convertView.setTag(holder); } else { holder = (LvViewHolder) convertView.getTag(); } TestBean testBean = mDatas.get(position); holder.tv.setText(testBean.getName()); Glide.with(mContext) .load(testBean.getUrl()) .into(holder.iv); holder.lv.setAdapter(new NestAdapter(testBean.getNest(), mContext)); return convertView; } private static class LvViewHolder { TextView tv; ImageView iv; ListViewForScrollView lv; } }