Android中BaseAdapter的viewHolder工具类

xiaoxiao2021-02-27  286

工具类实现

static class ViewHolder { public static <T extends View> T get(View view, int id) { SparseArray<View> viewHolder = (SparseArray<View>) view.getTag(); if (viewHolder == null) { viewHolder = new SparseArray<View>(); view.setTag(viewHolder); } View childView = viewHolder.get(id); if (childView == null) { childView = view.findViewById(id); viewHolder.put(id, childView); } return (T) childView; } }

BaseAdapter中使用

@Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = inflater.inflate(R.layout.item_layout, parent, false); } TextView name = Tools.ViewHolder.get(convertView, R.id.name); name.setText(""); return convertView; }

性能和内存已检验,无问题。。。。

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

最新回复(0)