文档章节

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
深圳
程序员
私信 提问
加载中

评论(0)

listview加载性能优化ViewHolder

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

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

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

slimboy123
2015/11/20
0
0
在getview方法中有三个参数,起到优化的部分为ViewHolder的使用,主要方法setTag(),getTag()

适配器代码如下: public class Myadapter extends BaseAdapter { List<String> date; Context context; //构造方法 public Myadapter(List<String> date, Context context) { this.date = d......

osc_ckqhg4ql
2019/08/04
2
0
Android BaseAdapter的使用

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

ForingY
2016/12/09
14
0
ListView的优化(多方面)

在网上看了许多关于ListView优化的文章,自己也码了这么长时间代码关于ListView的优化也有自己的一点心得,下面是我对ListView优化的一些见解。 为什么要对ListView进行优化? 很多时候我们直...

会飞的猪_shine
04/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java并没有衰落.大家对它的认识才刚刚开始 Java8全新出发

Java并没有衰落.大家对它的认识才刚刚开始 很高兴能在此给大家分享Java8的新特性。这篇文章将一步一步带你了解Java8的所有新特性。我将通过简单的实例代码向大家展示接口中默认方法,lambda ...

osc_lfbryx1h
1分钟前
0
0
最佳实践之有限状态机

有限状态机(Finite State Machine,FSM),简称状态机。今天这篇文档的主体思路,来自本人授权的一项发明专利。第一次尝试写出来,希望分享给更多人。 我当时写这个专利的时候,太有感觉了。...

osc_bskubcvl
3分钟前
0
0
面试大厂必看!就凭借这份Java多线程和并发面试题,我拿到了字节和美团的offer!

最近好多粉丝私信我说在最近的面试中老是被问到多线程和高并发的问题,又对这一块不是很了解,很简单就被面试官给问倒了,被问倒的后果当然就是被刷下去了,因为粉丝要求,我最近也是花了两天...

osc_s28jz759
4分钟前
0
0
构建一个简约博皮的过程

前置 由于之前构建的皮肤 reacg 偏二次元风,尽管提供了大量配置(包括几乎任何颜色、插件等的配置),依然有人吐槽花里胡哨,遂重新构建了一款简约风格的博客园皮肤, 正如你所见。下文我将从零...

osc_yozufu01
5分钟前
0
0
ReentrantLock解析及源码分析

本文结构 Tips:说明一部分概念及阅读源码需要的基础内容 ReentrantLock简介 公平机制:对于公平机制和非公平机制进行介绍,包含对比 实现:Sync源码解析额,公平和非公平模式的加锁、解锁过...

osc_hj9t7eba
6分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部