1 import android.util.SparseArray;
 2 import android.view.View;
 3
 4 /**
 5  * 封装了setTag()和getTag()方法
 6  * 封装了findViewById()方法
 7  * ViewHolder为ListView的每个条目打上tag,
 8  * 这个tag是一个数组对象,里面存储每个条目所包含的子控件对象,key为资源id
 9  * 当listview滑出顶部时,最上面的条目(convertView)被回收
10  * 最下面需要显示的条目就不需要再用父容器去找子控件(耗时操作),
11  * 而是直接取得父容器的tag,在tag中获取到子控件对象
12  *
13  *
14  */
15 public class ViewHolder {
16     /**
17      *
18      *
19      *
20      * @param view
21      *            控件父容器对象
22      * @param id
23      *            控件id
24      * @return 控件对象
25      */
26     @SuppressWarnings("unchecked")
27     public static <T extends View> T get(View view, int id) {
28         // 如果父容器不为空,获取父容器的tag,为数组初始化............
29         SparseArray<View> viewHolder = (SparseArray<View>) view.getTag();
30         if (viewHolder == null) {
31             // 如果数组为空,新建数组
32             viewHolder = new SparseArray<View>();
33             // 将父容器打上数组的tag...............
34             view.setTag(viewHolder);
35         }
36         // 根据控件的资源id在数组中找控件
37         View childView = viewHolder.get(id);
38         // 如果控件为空
39         if (childView == null) {
40             // 在父容器找
41             childView = view.findViewById(id);
42             // 将控件的资源id和控件对象存到数组中
43             viewHolder.put(id, childView);
44         }
45         // 返回子控件
46         return (T) childView;
47     }
48 }

转载于:https://www.cnblogs.com/jinglecode/p/4443728.html

Android ViewHolder工具相关推荐

  1. Android开发工具集合

    Android Studio Android开发环境,基于IntelliJ IDEA,谷歌2013年I/O大会发布,类似 Eclipse ADT:现已更新到1.3版本(截止15年8月),并支持NDK开 ...

  2. java安卓开发工具_推荐几个非常实用的Android开发工具

    工欲善其事,必先利其器.我们进行Android开发也要有好的开发工具辅助才能更好更高效的完成各种开发,为用户提供更实用的应用程序.本文就为大家推荐几个非常实用的Android开发工具,及几个常用的编辑 ...

  3. Xamarin.Form的Android SDK工具下载安装

    Xamarin.Form的Android SDK工具下载安装 本节将讲解如何下载Xamarin.Form的Android SDK工具,并使用其中的工具管理Android SDK,如何创建模拟器等内容. ...

  4. android 测试工具,Android开源项目第四篇:开发及测试工具篇

    本文为那些不错的Android开源项目第四篇--开发工具篇,**主要介绍Android开发工具和测试工具相关的开源项目**. Android开源项目系列汇总已完成,包括: 1.Buck faceboo ...

  5. 【Android CPU 优化】Android CPU 调优 ( Trace 文件分析 | Android Profiler 工具 | CPU Profiler 工具 )

    文章目录 一.Android CPU 优化 二.CPU Profiler 工具 三.相关资源 一.Android CPU 优化 在 Android 中 , 出现 动画掉帧 , 页面切换白屏 , 卡顿 ...

  6. 【Android 内存优化】Android Profiler 工具常用功能 ( 监测内存 | 内存快照 )

    文章目录 一. 内存泄漏排查 ( Android Profiler 工具 ) 二. Android Profiler 内存监测相关功能 三.内存快照分析 内存泄漏原理 : 长生命周期对象 , 持有短生 ...

  7. qpython3调用adb_Python实现的基于ADB的Android远程工具

    Python实现的基于ADB的Android远程工具,本工具为原创,涉及知识: - Python编程 - Tkinter GUI编程 - ADB通信机制 代码全文: #!/usr/bin/env py ...

  8. Xamarin.Forms教程Android SDK工具下载安装

    Xamarin.Form的Android SDK工具下载安装 本节将讲解如何下载Xamarin.Form的Android SDK工具,并使用其中的工具管理Android SDK,如何创建模拟器等内容. ...

  9. android sharedpreferences工具类

    今天,简单讲讲如何写一个sharedpreferences的工具类. 很简单,把一些重复的操作封装在工具类里,其他地方调用就可以.在网上搜索了比较多的资料,找到一个比较好的工具类. 参考文章:http ...

最新文章

  1. 教育的本质是人点亮人
  2. Zepto源码分析-event模块
  3. 网络故障解决方案之非标准子网划分【网管员必懂】
  4. matlab 常用数学函数
  5. 在Ubuntu 7.04上安装Xfce 4.4.1
  6. JS 动态显示 获取下拉框的多个值
  7. 1.SpringMVC 概述
  8. 设计模式-命令模式(Command)
  9. php 留言回复,PHP 留言板后台管理回复及删除留言处理
  10. 梳理 | 交叉熵、相对熵(KL散度)、JS散度和Wasserstein距离(推土机距离)
  11. 这家曾经的开源明星企业竟然生死未卜了
  12. Py 实现导线测量的内业计算
  13. 现当代英国童话小说传统对幻想文学创作的启示
  14. 【图片新闻】美海军的下一艘战舰与“祖姆沃尔特”DDG-1000极其相似
  15. 2022-08-13 LZO使用方法
  16. 我的达内Java培训经历
  17. 【情报工具】分享15款保护隐私的搜索引擎
  18. linux 命令:which详解
  19. 什么是数据可视化?企业如何进行数据可视化?
  20. del , pop 和 remove

热门文章

  1. Windows自带磁盘管理工具——diskpart
  2. LeetCode——778. 水位上升的泳池中游泳(Swim in Rising Water)——分析及代码(Java)
  3. 正则限制除一些标点符号,中文,数字,字母。以外都限制
  4. AntDesign前端表格排序
  5. 跟着Pink老师学前端——学成在线
  6. android歌词文件夹,Android歌词文本解析
  7. 【Python】Python打包exe后文件庞大,删减体积大小措施
  8. MSSQL排序规则总结
  9. mysql各种查询包括连接查询
  10. 2010年九寨沟旅游攻略