ViewHolder简洁写法,避免适配器中重复定义ViewHolder,减少代码量
2016-02-29 10:15
417 查看
import android.util.SparseArray; import android.view.View; @SuppressWarnings({ "unchecked" }) public class ViewFindUtils { /** * ViewHolder简洁写法,避免适配器中重复定义ViewHolder,减少代码量 用法: * * <pre> * 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); * </pre> */ 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); } }
相关文章推荐
- Java 回顾笔记8内部类
- 【leetcode】【28】Implement strStr()
- C语言中fflush函数的使用方法
- Java执行定时任务的方法(Timer、ScheduledExecutorService)
- Java 学习笔记 ------第五章 对象封装
- Java中的继承、封装、多态、抽象
- windows环境下如何安装jdk
- Java Enum 基本原理
- (1)WePHP 开启WePHP
- RxJava过滤操作符 debounce
- karaf 报错 Caused by: org.eclipse.jetty.io.EofException: early EOF
- java 实现多种排序
- java垃圾回收机制
- 消息队列测试代码
- java选择排序
- 【leetcode】【27】Remove Element
- lnrfvnhjttpvvlj
- vs2010 创建和C#使用动态链接库(dll)
- 学习Java多线程之线程定义、状态和属性
- Delphi 7 调用 C# WebService