自定义适配器getview方法

xiaoxiao2021-02-28  101

public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder; //如果view未被实例化过,缓存池中没有对应的缓存 if (convertView == null) { viewHolder = new ViewHolder(); // 由于我们只需要将XML转化为View,并不涉及到具体的布局,所以第二个参数通常设置为null convertView = mInflater.inflate(R.layout.item, null); //对viewHolder的属性进行赋值 viewHolder.imageView = (ImageView) convertView.findViewById(R.id.iv_image); viewHolder.title = (TextView) convertView.findViewById(R.id.tv_title); viewHolder.content = (TextView) convertView.findViewById(R.id.tv_content); //通过setTag将convertView与viewHolder关联 convertView.setTag(viewHolder); }else{//如果缓存池中有对应的view缓存,则直接通过getTag取出viewHolder viewHolder = (ViewHolder) convertView.getTag(); } // 取出bean对象 ItemBean bean = mList.get(position); // 设置控件的数据 viewHolder.imageView.setImageResource(bean.itemImageResId); viewHolder.title.setText(bean.itemTitle); viewHolder.content.setText(bean.itemContent); return convertView; } // ViewHolder用于缓存控件,三个属性分别对应item布局文件的三个控件 class ViewHolder{ public ImageView imageView; public TextView title; public TextView content; }

1 创建bean对象,用于封装数据;

2 在构造方法中初始化的数据List;

3 创建ViewHolder类,创建布局映射关系;

4 判断convertView,为空则创建,并设置tag,不为空则通过tag取出ViewHolder;

5 给ViewHolder的控件设置数据。

 

转载请注明原文地址: https://www.6miu.com/read-52466.html

最新回复(0)