它们的定义Adapterg在etView( )正在使用View.setTag()与不同的是不使用。
首先看使用Tag案件。
@Override
public View getView(int position, View view, ViewGroup group) {
ViewHolder holder = new ViewHolder();
if(view==null){
view = inflater.inflate(R.layout.note_list_item, null);//载入列表项的布局文件.
holder.title = (TextView)view.findViewById(R.id.note_title);
holder.createtime = (TextView)view.findViewById(R.id.note_createtime);
holder.clock = (ImageView)view.findViewById(R.id.note_clock);
view.setTag(holder); //将view和holder进行绑定
}else{
holder = (ViewHolder)view.getTag();
}
String title = items.get(position);
title = title.length()>10 ? title.substring(0, 10)+"..." : title;
holder.title.setText(title);
holder.createtime.setText(times.get(position));
}
能够看到。本例使用了一个特别的ViewHolder类对组件进行保存。
private class ViewHolder{
private TextView title;
private TextView createtime;
private ImageView clock;
}
再来看下不使用Tag的情况:
@Override
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null) {
convertView = mInflater.inflate(R.layout.multiple_checkbox_main_row, null);
}
TextView tN = (TextView) convertView.findViewById(R.id.multiple_title);
tN.setText((String)mList.get(position).get(NAME));
TextView tP = (TextView) convertView.findViewById(R.id.multiple_summary);
tP.setText((String)mList.get(position).get(PHONE_NUMBER));
}
能够发现不使用Tag获取View时每次都会调用View.findViewById(XXX)方法。
而使用Tag的时候因为控件已经保存到了Tag中所以不必再调用View.findViewById(XXX)方法。
Tag相当于一个缓存的作用。从而提升了程序的性能。
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------分隔线 2014/12/4
getView()中的參数convertView什么时候才不为null呢。
经过试验。第一次载入ListView的时候convertView都是为空的。
仅仅有当ListView中的item载入过之后隐藏(上下滑动在屏幕中隐藏)之后然后再次显示时间,convertView不是null。
版权声明:本文博客原创文章。博客,未经同意,不得转载。
它们的定义Adapterg在etView( )正在使用View.setTag()与不同的是不使用。的更多相关文章
- Android自己定义控件而且使其能够在xml中自己定义属性
为什么要自己定义View android开发中自己定义View的优点是显而易见的.比方说以下的这个顶部导航,它被设计出如今应用的每一个界面,但每次的内容却不尽同样.我们不能在每一个layout资源中都 ...
- Android自己定义控件之应用程序首页轮播图
如今基本上大多数的Android应用程序的首页都有轮播图.就是像下图这种(此图为转载的一篇博文中的图.拿来直接用了): 像这种组件我相信大多数的应用程序都会使用到,本文就是自己定义一个这种组件,能够动 ...
- java反射--注解的定义与运用以及权限拦截
自定义注解类编写的一些规则: 1. Annotation型定义为@interface, 所有的Annotation会自动继承java.lang.Annotation这一接口,并且不能再去继承别的类或是 ...
- gridView自己定义做时间排版
公司有需求要做一个时间排版,原型例如以下 由于要用的gridView,曾经就是它的排版非常多,最看是想用一个checkbox搞定. 后来证实功能可以达到.可是排版是乱的.还是老老实实多写点吧(直接上代 ...
- SQL Server中授予用户查看对象定义的权限
SQL Server中授予用户查看对象定义的权限 在SQL Server中,有时候需要给一些登录名(用户)授予查看所有或部分对象(存储过程.函数.视图.表)的定义权限存.如果是部分存储过程.函数. ...
- Security4:授予查看定义,执行SP和只读数据的权限
SQL Server数据库有完善的权限管理机制,对于存储过程,其权限分为查看定义,执行和修改,查看SP定义的权限是:VIEW DEFINITION ,执行存储过程的权限是:EXECUTE,修改SP的权 ...
- Android自己定义控件系列二:自己定义开关button(一)
这一次我们将会实现一个完整纯粹的自己定义控件,而不是像之前的组合控件一样.拿系统的控件来实现.计划分为三部分:自己定义控件的基本部分,自己定义控件的触摸事件的处理和自己定义控件的自己定义属性: 以下就 ...
- oracle 定义带参数的视图
1.定义包 CREATE OR REPLACE package p_view_param is --定义开始日期-- function set_beginTime(beginTime varchar2 ...
- Android ViewDragHelper全然解析 自己定义ViewGroup神器
转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/46858663. 本文出自:[张鸿洋的博客] 一.概述 在自己定义ViewGro ...
随机推荐
- jQuery 简单滑动轮播图效果
一般页面简单轮播图效果用jQuery制作更加简单.我们来看看以下效果是如何来进行制作的. 其html结构下所示: <div id="box"> < ...
- 基于visual Studio2013解决C语言竞赛题之1003字母打印
题目 解决代码及点评 ///************************************************************************/ ...
- [HTML5游戏开发]简单的《找不同汉字版》,来考考你的眼力吧
本次 游戏 开发需要用到lufylegend.js开源游戏引擎,版本我用的是1.5.2(现在最新的版本是1.6.0). 引擎下载的位置: http://lufylegend.googlecode ...
- container_of用法及实现
container_of 有的情况下,只知道 struct结构中莫个成员的指针,而需要知道整个struct的指针 (如网卡驱动里面,list) struct DDD { int a; ...
- Makefile学习(二)[第二版]
复杂实例 #演示样例1:在上一个演示样例的基础上再添加一个可运行文件03test[改动之处已标红] .PHONY: clean all CC = gcc CFLAGS = -Wall -g BIN = ...
- C# - 线程操作
代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syst ...
- JQuery5.04获取
获取body: $('body'); 或者 $(document.body); 获取元素标签:$('div'); $('a'); 获取ID: $('id'); 获取某个元素的某个属性: $('a ...
- backbone入门小例子
最近听了个backbone的分享,为了避免听不懂,就先做了个小例子 例子很简单,效果如下 基本视图模板: <script type="tex/template" id=&qu ...
- c# winform 让Form去掉系统自带的关闭
在桌面系统时我们有时候想把winform 自带的关闭按钮和最大化最小化都去掉,我遇到了类似的情况,在网上一查也有很多答案,但是最后找到了一个最简单的答案,一句话的事,今天记录一下,就是让大家都简单的实 ...
- spring mvc +cookie+拦截器功能 实现系统自动登陆
先看看我遇到的问题: @ResponseBody @RequestMapping("/logout") public Json logout(HttpSession session ...