android中使用ListView   ExpandableListView  数据适配器adapter很多都是自己定义,自己定义数据适配器时,要重写getView。重写getView为了不让每次调用时都去分配相关显示控件的空间,用ViewHolder 可以提高性能。在此对ViewHolder 的使用做个记录。

1、概述

ViewHolder 是自己定义的一个内部类。在使用时主要用到了adapter本身的缓存机制,和setTag  getTag 两个函数

2、代码片

private class ViewHolder {
ImageView image;
TextView text;
TextView text2;
Button mButton;

TextView txt_value1;
TextView txt_value2;
}

@Override
public View getView(final int position, View view, ViewGroup viewGroup) {

ViewHolder viewHolder = null;

if (view == null) {
view = layoutInflater.inflate(R.layout.item_image_button_2txt, null);
viewHolder = new ViewHolder();
viewHolder.image = (ImageView) view.findViewById(R.id.imageView1);
viewHolder.text = (TextView) view.findViewById(R.id.textView1);
viewHolder.text2 = (TextView) view.findViewById(R.id.textView2);
viewHolder.mButton = (Button) view.findViewById(R.id.button1);
viewHolder.txt_value1 = (TextView) view.findViewById(R.id.value1);
viewHolder.txt_value2 = (TextView) view.findViewById(R.id.value2);
view.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) view.getTag();
}

//添加要做的显示业务

}

3、note:在使用ViewHolder时不要忘记了先setTag  然后才有getTag 不然肯定是报空指针

android ViewHolder 使用的更多相关文章

  1. Android ViewHolder工具

    import android.util.SparseArray; import android.view.View; /** * 封装了setTag()和getTag()方法 * 封装了findVie ...

  2. Android——ViewHolder的作用与用法

    转载至:https://www.cnblogs.com/wugu-ren/p/6106379.htmlViewHolder通常出现在适配器里,为的是listview滚动的时候快速设置值,而不必每次都重 ...

  3. android:ViewHolder模式

    ViewHolder holder = null; if(convertView == null){ convertView = mInflater.inflate(R.layout.xxx null ...

  4. android viewHolder static 静态

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 不是静态内部类 会 持有 外部类的 引用.  就像经常自定义的 适配器 类 作为内部类 ...

  5. Android ViewHolder的作用与用法

    就是一个持有者的类,他里面一般没有方法,只有属性,作用就是一个临时的储存器,把你getView方法中每次返回的View存起来,可以下次再用.这样做的好处就是不必每次都到布局文件中去拿到你的View,提 ...

  6. Android ViewHolder

    Adapter :适配器,因为 ListView 是一个 View ,不能添加子项,因此在呈现数据的时候就需要某种工具将数据呈现在 ListView 上,而 Adapter 就能充当此角色.常用的 A ...

  7. 【Android】11.0 UI开发(二)——列表控件ListView的简单实现1

    ************************ 转载请注明出处:https://www.cnblogs.com/xiaofu007/p/10342462.html ***************** ...

  8. Android知识——ViewHolder的作用与用法

    ViewHolder通常出现在适配器里,为的是listview滚动的时候快速设置值,而不必每次都重新创建很多对象,从而提升性能.在android开发中Listview是一个很重要的组件,它以列表的形式 ...

  9. [Android]对BaseAdapter中ViewHolder编写简化

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3642849.html 在Android项目中,经常都会用到Li ...

随机推荐

  1. Photoshop CS6 基础知识

                                                                  Photoshop CS6  基础知识 新建  练习 宽度72, 像素厘米 ...

  2. VC com 通信实例

    HANDLE hCom;//全局變量串口句柄 COMMTIMEOUTS TimeOuts; DCB dcb; 按鈕代碼() { hCom=CreateFile(L“COM1”,// 串口名稱 GENE ...

  3. hdu3525

    题目大意:某个大学有个2个校区,此大学有n(1<=n<=10000)个运动员,这n个运动员在每个校区都挑选了m(1<=m<=10)个拉拉队.现在每个校区(A/B)中,这m*n个 ...

  4. 编译安装apache2.4

    一.编译安装apache2.4Apache官方说:与Apache 2.2.x相比,Apache 2.4.x提供了很多性能方面的提升,包括支持更大流量.更好地支持云计算.利用更少的内存处理更多的并发等. ...

  5. 我的DbHelper数据操作类(转)

    其实,微软的企业库中有一个非常不错的数据操作类了.但是,不少公司(起码我遇到的几个...),对一些"封装"了些什么的东西不太敢用,虽然我推荐过微软的企业库框架了...但是还是要&q ...

  6. AutoItLibrary库入门

    一.AutoItLibrary入门 1. 为什么要使用AutoItLibrary Selenium2library在我们实际测试web页面的时候基本上已经够用了,不过还是会有部分情况下会脱离Selen ...

  7. jQuery学习-事件之绑定事件(四)

    今天我们来学习jQuery.Event对象.jQuery为了添加自己的处理机制,及可以传递用户自定义数据,于是Event对象就出世了.   1 jQuery.Event = function( src ...

  8. keil mdk中如何确保某一段程序不被优化掉

    使用mdk编程,假如有一个有用的函数你定义了但是没有显式的调用,mdk在默认方式下,将会把这个函数从整个程序总删除掉,以节省ROM. 比如,你在ROM的0x00002000处定位了一个函数,假设为vo ...

  9. Android Studio下载安装及配置图文教程

    原文 http://jingyan.baidu.com/article/9c69d48f56835e13c9024e95.html AndroidStudio下载地址:https://develope ...

  10. Oracle数据导入导出imp/exp(转)

    在oracle安装目录下有EXP.EXE与IMP.EXE这2个文件,他们分别被用来执行数据库的导入导出.所以Oracle数据导入导出imp/exp就相当与oracle数据还原与备份. 一.Oracle ...