Android ViewHolder工具
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工具相关推荐
- Android开发工具集合
Android Studio Android开发环境,基于IntelliJ IDEA,谷歌2013年I/O大会发布,类似 Eclipse ADT:现已更新到1.3版本(截止15年8月),并支持NDK开 ...
- java安卓开发工具_推荐几个非常实用的Android开发工具
工欲善其事,必先利其器.我们进行Android开发也要有好的开发工具辅助才能更好更高效的完成各种开发,为用户提供更实用的应用程序.本文就为大家推荐几个非常实用的Android开发工具,及几个常用的编辑 ...
- Xamarin.Form的Android SDK工具下载安装
Xamarin.Form的Android SDK工具下载安装 本节将讲解如何下载Xamarin.Form的Android SDK工具,并使用其中的工具管理Android SDK,如何创建模拟器等内容. ...
- android 测试工具,Android开源项目第四篇:开发及测试工具篇
本文为那些不错的Android开源项目第四篇--开发工具篇,**主要介绍Android开发工具和测试工具相关的开源项目**. Android开源项目系列汇总已完成,包括: 1.Buck faceboo ...
- 【Android CPU 优化】Android CPU 调优 ( Trace 文件分析 | Android Profiler 工具 | CPU Profiler 工具 )
文章目录 一.Android CPU 优化 二.CPU Profiler 工具 三.相关资源 一.Android CPU 优化 在 Android 中 , 出现 动画掉帧 , 页面切换白屏 , 卡顿 ...
- 【Android 内存优化】Android Profiler 工具常用功能 ( 监测内存 | 内存快照 )
文章目录 一. 内存泄漏排查 ( Android Profiler 工具 ) 二. Android Profiler 内存监测相关功能 三.内存快照分析 内存泄漏原理 : 长生命周期对象 , 持有短生 ...
- qpython3调用adb_Python实现的基于ADB的Android远程工具
Python实现的基于ADB的Android远程工具,本工具为原创,涉及知识: - Python编程 - Tkinter GUI编程 - ADB通信机制 代码全文: #!/usr/bin/env py ...
- Xamarin.Forms教程Android SDK工具下载安装
Xamarin.Form的Android SDK工具下载安装 本节将讲解如何下载Xamarin.Form的Android SDK工具,并使用其中的工具管理Android SDK,如何创建模拟器等内容. ...
- android sharedpreferences工具类
今天,简单讲讲如何写一个sharedpreferences的工具类. 很简单,把一些重复的操作封装在工具类里,其他地方调用就可以.在网上搜索了比较多的资料,找到一个比较好的工具类. 参考文章:http ...
最新文章
- 教育的本质是人点亮人
- Zepto源码分析-event模块
- 网络故障解决方案之非标准子网划分【网管员必懂】
- matlab 常用数学函数
- 在Ubuntu 7.04上安装Xfce 4.4.1
- JS 动态显示 获取下拉框的多个值
- 1.SpringMVC 概述
- 设计模式-命令模式(Command)
- php 留言回复,PHP 留言板后台管理回复及删除留言处理
- 梳理 | 交叉熵、相对熵(KL散度)、JS散度和Wasserstein距离(推土机距离)
- 这家曾经的开源明星企业竟然生死未卜了
- Py 实现导线测量的内业计算
- 现当代英国童话小说传统对幻想文学创作的启示
- 【图片新闻】美海军的下一艘战舰与“祖姆沃尔特”DDG-1000极其相似
- 2022-08-13 LZO使用方法
- 我的达内Java培训经历
- 【情报工具】分享15款保护隐私的搜索引擎
- linux 命令:which详解
- 什么是数据可视化?企业如何进行数据可视化?
- del , pop 和 remove