ViewHolder高效使用
2015-12-08 21:12
323 查看
网上看到的ViewHolder的高效使用方法,和老方法有些区别,到底有没有高效我不太清楚,不过有时候使用时没有老方法方便
不过在android studio上会有警告,所以修改了一下
public class ViewHolder {
public static View get(View view, int id) {
ViewList viewHolder = (ViewList) view.getTag();//SparseArray<View> viewHolder = (SparseArray<View>) view.getTag()原来是这样写的,但是会有警告,这样就无警告
if (viewHolder == null) {
viewHolder = new ViewList();
view.setTag(viewHolder);
}
View childView = viewHolder.get(id);
if (childView == null) {
childView = view.findViewById(id);
viewHolder.put(id, childView);
}
return childView;
}
}
public class ViewList {
private SparseArray<View> list;
public ViewList(){
list = new SparseArray<>();
}
public View get(int key){
return list.get(key);
}
public void put(int key,View view){
list.put(key,view);
}
}
不过在android studio上会有警告,所以修改了一下
public class ViewHolder {
public static View get(View view, int id) {
ViewList viewHolder = (ViewList) view.getTag();//SparseArray<View> viewHolder = (SparseArray<View>) view.getTag()原来是这样写的,但是会有警告,这样就无警告
if (viewHolder == null) {
viewHolder = new ViewList();
view.setTag(viewHolder);
}
View childView = viewHolder.get(id);
if (childView == null) {
childView = view.findViewById(id);
viewHolder.put(id, childView);
}
return childView;
}
}
public class ViewList {
private SparseArray<View> list;
public ViewList(){
list = new SparseArray<>();
}
public View get(int key){
return list.get(key);
}
public void put(int key,View view){
list.put(key,view);
}
}
相关文章推荐
- Linux根目录详解
- java 中string filename和file filename 创建文件的区别
- lambda表达式:方法引用
- 将博客搬至CSDN
- CEdit & CRichEdit 使用技巧
- leetcode -- Majority Element -- 简单,但是还有很多其他方法
- 冲刺 12.8
- 吃西瓜 最大子矩阵 三维的。 rqnoj93
- BZOJ1092 : [SCOI2003]蜘蛛难题
- 最大矩形
- python之C扩展二
- 【Android游戏开发之十】(优化处理)详细剖析Android Traceview效率检视工具,分析程序运行速度!并讲解两种创建SDcard方式!
- java泛型程序设计——无限定通配符+通配符捕获
- Kafka(三) -- 安装和使用
- Linux下静态库的生成以及使用实例图解
- HDU 3364 (高斯消元)
- “平面铣”生成“清理拐角”刀路
- 运用.NIT将数据存入数据库、读取数据库(运用封装)陈老师作业
- maven 父子关系模块配置(一)--父模块配置
- Mybatis中javaType和jdbcType对应和CRUD例子