它们的定义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 ...
随机推荐
- JS 2016-09-30T22:04:27.5220743+08:00 转换为日期
1.转换代码 new Date(item.CreatedDate).Format("yyyy-MM-dd hh:mm") 2.需要拓展的方法 // 对Date的扩展,将 Date ...
- 在SSH框架中使用Spring的好处(转)
以下是我总结下今天笔试中SSh中的总结: 在SSH框架中spring充当了管理容器的角色.我们都知道Hibernate用来做持久层,因为它将JDBC做了一个良好的封装,程序员在与数据库进行交互时可以不 ...
- 基于visual Studio2013解决算法导论之002归并排序
题目 归并排序 解决代码及点评 #include <stdio.h> #include <stdlib.h> #include <malloc.h> #in ...
- php 上传文件代码
通过 PHP,能够把文件上传到server.里面加入一些图片的推断,假设不加推断文件的类型就能够上传随意格式的文件. 为了站点的安全,肯定不让上传php文件,假设有人进入你的后台,上传了一个php文件 ...
- Python IDLE 运行错误:IDLE's subprocess didn't make connection. --已解决(原创)!
Python IDLE 错误描述: Subprocess Startup ErrorIDLE's subprocess didn't make connection. Either IDLE can' ...
- APEC计划指引我们前进:云计算服务将上升
APEC纲领指引我们前进:云计算服务业必将兴起 这是APEC领导人的合影: 这次APEC会议通过了<北京纲领>和<亚太伙伴关系声明>,进一步明白了亚太地区经济合作的发展方向.目 ...
- 透过表象看本质!?之三——Kalman滤波
数据拟合能够估计出数据变化的趋势,另外一个同等重要的应用是如何利用这一趋势,预测下一时刻数据可能的值.通俗点儿说,你观察苍蝇(蚊子,蜜蜂)飞了几秒,你也许会想“它下一个时刻可能在哪儿”,“呈现出什么样 ...
- asp.net2.0安全性(1)--用户角色篇(代码实现1)--转载来自车老师
创建用户: MembershipCreateStatus mc; Membership.CreateUser(txtUid.Text, txtPwd.Text, txtEmail.Text, txtQ ...
- paip.提升用户体验---c++ qt自定义窗体(1)---标题栏的绘制
源地址:http://blog.csdn.net/attilax/article/details/12343625 paip.提升用户体验---c++ qt自定义窗体(1)---标题栏的绘制 效果图: ...
- [Warning] Aborted connection 11203 to db: 'ide' user: 'nuc' host: 'prd01.mb.com' (Got an error writi
PS:一台物理机扯分了3个虚拟机,一个主db,一个主备,一个从备. 切换到0301的时候 Sep 6 09:16:16 prddb0301 mysqld: 130906 9:16:16 [Warn ...