Listview中ViewHolder简洁写法,避免适配器中重复定义ViewHolder,减少代码量

来源:互联网 发布:网络词碰瓷是什么意思 编辑:程序博客网 时间:2024/05/16 02:58

废话不多说,直接上代码.

public class ViewFindUtils{/** * ViewHolder简洁写法,避免适配器中重复定义ViewHolder,减少代码量 用法: *  *  * if (convertView == null) * { * convertView = View.inflate(context, R.layout.ad_demo, null); * } * TextView tv_demo = ViewHolderUtils.get(convertView, R.id.tv_demo); * ImageView iv_demo = ViewHolderUtils.get(convertView, R.id.iv_demo); *  */public static <T extends View> T hold(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;}/** * 替代findviewById方法 */public static <T extends View> T find(View view, int id){return (T) view.findViewById(id);}}


1 0
原创粉丝点击