文档章节

listview适配器解放holder

辉辉123
 辉辉123
发布于 2015/10/22 23:34
字数 234
阅读 6
收藏 0
static class ViewHolder {
     public static <T extends View> T get(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;
     }
}
/**
*这是工具类的实现,稍微说下实现的原理:
*
*1、ViewHolder既然是依赖View的Tag存放,但是以一个 SparseArray 集合存放。
*
*2、判断View里的Tag是否存在viewHolder,不存在,赶紧叫她生一个。
*
*3、然后在viewholder(也就是SparseArray)寻找View的索引,如果没有,赶紧findViewById一个
*put进去顺便return出来,如果已经存在,皆大欢喜,直接用呗。
*
*
*/
 
 
/**
*贴个BaseAdapter里面使用的代码:
*/
@Override
public View getView( int position, View convertView, ViewGroup parent) {
     if (convertView == null ) {
         convertView = inflater.inflate(R.layout.listview_item_layout, parent, false );
     }
     TextView name = Tools.ViewHolder.get(convertView, R.id.student_name);
     TextView age =Tools.ViewHolder.get(convertView, R.id.student_age);
      
     Student data = (Student) getItem(position);
     name.setText(data.getName());
     age.setText(data.getAge());
      
     return convertView;
}


本文转载自:

共有 人打赏支持
辉辉123
粉丝 0
博文 5
码字总数 938
作品 0
深圳
程序员
私信 提问
RecyclerView的通用适配器,和滚动时不加载图片的封装

很早之前写过一篇讲ListView的万能适配器的方案通用Adapter与ListView滚动时不加载图片的封装,可以让你在写ListView的Adapter时只关注对控件设置内容,而不需要再去考虑ViewHolder、控件初始...

kymjs张涛
2015/10/11
1K
2
listview加载性能优化ViewHolder

在android开发中Listview是一个很重要的组件,它以列表的形式根据数据的长自适应展示具体内容,用户可以自由的定义listview每一列的布局,但当listview有大量的数据需要加载的时候,会占据大量...

stefanliao
2012/05/21
0
0
Android开发之多层树型目录的实现

转自:http://user.qzone.qq.com/314154775/infocenter#!app=2&via=QZ.HashRefresh&pos=1335594212 树型目录是一种直观的列表显示目录方式,在用户界面得到普遍使用,如Windows的资源管理器窗...

slimboy123
2015/11/20
0
0
Android BaseAdapter的使用

现在有许多的适配器供我们使用,但是我们发现处理复杂的itmes使往往使用的是BaseAdapter,下面上代码 main.xml list_item.xml Activity 运行结果如下:...

ForingY
2016/12/09
12
0
Android控件ListView优化

这篇文章只是总结下getView里面优化视图的几种写法,就像孔乙己写茴香豆的茴字的几种写法一样,高手勿喷,勿笑,只是拿出来分享,有错误的地方欢迎大家指正,谢谢。 listview Aviewthatshow...

的书法上的
2014/05/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

PHP生成CSV之内部换行

当我们使用PHP将采集到的文件内容保存到csv文件时,往往需要将采集内容进行二次过滤处理才能得到需要的内容。比如网页中的换行符,空格符等等。 对于空格等处理起来都比较简单,这里我们单独...

豆花饭烧土豆
今天
2
0
使用 mjml 生成 thymeleaf 邮件框架模板

发邮件算是系统开发的一个基本需求了,不过搞邮件模板实在是件恶心事,估计搞过的同仁都有体会。 得支持多种客户端 支持响应式 疼彻心扉的 outlook 多数客户端只支持 inline 形式的 css 布局...

郁也风
今天
8
0
让哲学照亮我们的人生——读《医务工作者需要学点哲学》有感2600字

让哲学照亮我们的人生——读《医务工作者需要学点哲学》有感2600字: 作者:孙冬梅;以前读韩国前总统朴槿惠的著作《绝望锻炼了我》时,里面有一句话令我印象深刻,她说“在我最困难的时期,...

原创小博客
今天
4
0
JAVA-四元数类

public class Quaternion { private final double x0, x1, x2, x3; // 四元数构造函数 public Quaternion(double x0, double x1, double x2, double x3) { this.x0 = ......

Pulsar-V
今天
18
0
Xshell利用Xftp传输文件,使用pure-ftpd搭建ftp服务

Xftp传输文件 如果已经通过Xshell登录到服务器,此时可以使用快捷键ctrl+alt+f 打开Xftp并展示Xshell当前的目录,之后直接拖拽传输文件即可。 pure-ftpd搭建ftp服务 pure-ftpd要比vsftp简单,...

野雪球
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部