文档章节

listview适配器解放holder

辉辉123
 辉辉123
发布于 2015/10/22 23:34
字数 234
阅读 4
收藏 0
点赞 0
评论 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 ⋅ 2

listview加载性能优化ViewHolder

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

stefanliao ⋅ 2012/05/21 ⋅ 0

Android开发之多层树型目录的实现

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

slimboy123 ⋅ 2015/11/20 ⋅ 0

Android BaseAdapter的使用

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

ForingY ⋅ 2016/12/09 ⋅ 0

Android控件ListView优化

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

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

【Android】RecyclerView

RecyclerView RecyclerView简明 RecyclerView 在v7.21+包中,是一个用来展示大量数据的组件,或者说,就是ListView的改善版本(注:现阶段的功能没有ListView完善,因此想完全取代ListView的...

xesam ⋅ 2014/12/02 ⋅ 0

慕课网 万能适配器学习笔记

首先再次感谢 慕课网的技术大牛分享了该课程。 一.传统 ListView 适配器的模式:1. 创建Listview,并为listview 创建item布局2.封装数据 3.为Item布局创建特定的适配器 用于数据展示。(在这...

疯子v1 ⋅ 2015/07/30 ⋅ 0

android ListView详解

本人android新手,最近看见一篇很不错的listview详解,觉得受益匪浅,特来转载分享希望对大家有帮助,同时很感谢作者的无私奉献 列表的显示需要三个元素: 1.ListVeiw 用来展示列表的View。 2....

Pikachu“ ⋅ 2013/01/02 ⋅ 0

ListView适配器Adapter介绍与优化

一、ListView与Adapter的关系 ListView是Android开发过程中较为常见的组件之一,它将数据以列表的形式展现出来。一般而言,一个ListView由以下三个元素组成: 1、View,用于展示列表,通常是...

张辉原 ⋅ 2017/06/15 ⋅ 0

ListView与Button共存问题

首先,个人觉得这种问题压根就不是问题,因为你将一个TextView的Backgroud设置成一个selector,也可以将一个TextView设计成一个按钮的样子。。。这样完全可以绕过ListView和Button的冲突问题...

阿舍 ⋅ 2013/01/19 ⋅ 1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

用SQL命令查看Mysql数据库大小

要想知道每个数据库的大小的话,步骤如下: 1、进入information_schema 数据库(存放了其他的数据库的信息) use information_schema; 2、查询所有数据的大小: select concat(round(sum(da...

源哥L ⋅ 44分钟前 ⋅ 0

两个小实验简单介绍@Scope("prototype")

实验一 首先有如下代码(其中@RestController的作用相当于@Controller+@Responsebody,可忽略) @RestController//@Scope("prototype")public class TestController { @RequestMap...

kalnkaya ⋅ 49分钟前 ⋅ 0

php-fpm的pool&php-fpm慢执行日志&open_basedir&php-fpm进程管理

12.21 php-fpm的pool pool是PHP-fpm的资源池,如果多个站点共用一个pool,则可能造成资源池中的资源耗尽,最终访问网站时出现502。 为了解决上述问题,我们可以配置多个pool,不同的站点使用...

影夜Linux ⋅ 58分钟前 ⋅ 0

微服务 WildFly Swarm 管理

Expose Application Metrics and Information 要公开关于我们的微服务的有用信息,我们需要做的就是将监视器模块添加到我们的pom.xml中: 这将使在管理和监视功能得到实现。从监控角度来看,...

woshixin ⋅ 58分钟前 ⋅ 0

java连接 mongo伪集群部署遇到的坑

部署mongo伪集群 #创建mongo数据存放文件地址mkdir -p /usr/local/config1/datamkdir -p /usr/local/config2/data mkdir -p /usr/local/config3/data mkdir -p /usr/local/config1/l......

努力爬坑人 ⋅ 59分钟前 ⋅ 0

React Native & Weex 区别

JS引擎 Weex使用V8, React native使用JSCore JS开发框架 ( Js Framework ) Weex基于vue.js(2W+ star)。小巧轻量的前端开发框架,组件化,数据绑定,2.0引入virtual dom。 ReactNative使用...

东东笔记 ⋅ 今天 ⋅ 1

UIkit 分页组件动态加载简单实现

1. 问题描述 使用过UIkit分页组件的都清楚,UIkit的分页不能动态刷新数据,也就是不能在点击下一页的时候,动态从后台加载数据,并且刷新页数以及该页数上的数据,下面是一个简单实现,没有做...

影狼 ⋅ 今天 ⋅ 0

Mobx入门之三:Provider && inject

上一节中<App/>组件传递状态temperatures给children -- <TemperatureInput />,如果组建是一个tree, 那么属性的传递则会非常繁琐。redux使用Provider给子组件提供store, connect将子组件和s...

pengqinmm ⋅ 今天 ⋅ 0

魔兽世界 7.0版本 S23/S24/S25全职业普通+精锐套

  死亡骑士   (联盟)   (部落)   (精锐)   恶魔猎手   (联盟)   (部落)   (精锐)   德鲁伊   (联盟)   (部落)   (精锐)   猎人   (联盟) ...

wangchen1999 ⋅ 今天 ⋅ 0

maven顶级pom和子pom的版本号批量修改

当一个版本发布,新起一个版本时,我们只需要手动修改一下项目中pom.xml的版本号就可以了。但是如果这个maven项目有很多的子模块项目,那么一个个手动的去改就显得费时费力又繁琐了。还好,m...

ArlenXu ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部