首先我们使用ViewHolder 就是为了在RecyclerView 滚动时设置值的

在我们使用ListView或者RecyclerView时, 当有大量的数据需要加载的时候,会占据大量内存,影响性能,这时候就需要按需填充并重新使用view来减少对象的创建。

静态类ViewHolder: 作用就是减少不必要的findViewById, 然后将底下的控件引用存在ViewHolder里面, 再在View.setTag(holder)把它放在view 里面, 这样一来下次就可以直接取了

convertView中的TAG:
Tag从本质上来讲是就是相关联的view的额外的信息。它们经常用来存储一些view的数据,这样做非常方便而不用存入另外的单独结构。
setTag方法:( 例如button1.setTag(1) ) 他是给View对象的一个标签。标签可以是任何内容,我们这里把他设置成了一个对象,因为我们是把vlist2.xml的元素抽象出来成为一个类ViewHolder,用了setTag,这个标签就是ViewHolder实例化后对象的一个属性。我们之后对于ViewHolder实例化的对象holder的操作,都会因为java的引用机制而一直存活并改变convertView的内容,而不是每次都是去new一个, 把重加载换做重用, 提升性能

......button1.setTag(1);button2.setTag(2);button3.setTag(3);button1.setOnClickListener(this);}@Overridepublic void onClick(View v) {int tag = (Integer) v.getTag();switch (tag) {case 1: {Toast.makeText(this, "button1", Toast.LENGTH_LONG).show();break;}case 2: {Toast.makeText(this, "button2", Toast.LENGTH_LONG).show();break;}case 3: {Toast.makeText(this, "button3", Toast.LENGTH_LONG).show();break;}default: {break;}}
......

Android: 适配器中的 viewholder 的作用相关推荐

  1. Android 项目中文件夹的作用

    Android 项目中文件夹的作用 1. src:存放所有的*.java源程序. 2. gen:为ADT插件自动生成的代码文件保存路径,里面的R.java将保存所有的资源ID. 3. assets:可 ...

  2. android+委托列表,在Android适配器中使用委托者模式

    [这是一个线索]适配器君从不甘当线索,同样是设计模式,适配器模式不是今天的主题,今天的主题是在适配器中如何使用委托者模式以明确设计中的各元素的分工. 一个具有适配器View的界面,Activity作为 ...

  3. android holder 内部类,Android RecyclerView中的ViewHolder

    在使用android提供的组件以列表的格式显示数据时,使用过ListView组件和RecyclerView组件.目前一般推荐使用RecyclerView,因为RecyclerView本身的缓存和效率比 ...

  4. android odex 作用,Android ROM中Odex文件的作用及介绍

    细心的网友可能发现Android的ROM中有很多odex文件,相对于 APK中的dex文件而言这个odex有什么作用呢? Android123提示大家,如果你仔细观察会发现文件名时一一对应的,同时那些 ...

  5. Android开发中NDK开发的作用

    NDK开发,主要目: 1.将java中性能较差的代码放到C或C++中执行,提高效率. 2.将保密算法或信息代码放入C或C++文件中,打包为so动态库,这样难以破解. 3.部分验证信息可以放到C或C++ ...

  6. Android Studio 中列表视图(ListView)的应用

    目录 引言 一.列表视图的作用 二.列表视图的工作原理和工作方式 三.准备数据源 四.适配器的使用 五.布局文件中的列表视图 六.自定义列表项布局 七.列表项点击事件处理 八.列表的优化 十.示例代码 ...

  7. Android Studio中的代码格式快捷方式

    本文翻译自:Code formatting shortcut in Android Studio I have started developing with Android Studio . 我已经 ...

  8. android listview 切换,Android:在ListView适配器中切换OnCheckedChangeListener

    我在我的应用程序中有一个listView.对于listView中的每个元素,它都有一个Switch.以前我在listView Adapter的getView方法中为Switch实现了一个onClick ...

  9. android 目录作用,Android中各级目录的作用说明

    android中各级目录的作用 1>目录结构 1.根目录: src目录---存放源代码文件 gen目录---adt插件生成的文件,(自动生成) assets目录---存放资源文件目录,不会在r. ...

最新文章

  1. Django创建项目的命令
  2. bufferedwriter缓冲区设置多大比较合适_画册设计一般多大?宣传册设计用多大尺寸比较合适?...
  3. python比较三个数_python经典练习题(三)
  4. 2022考研英语二大纲
  5. 结合CKFinder,给CKEditor加上上传图片功能
  6. 洛谷——P1161 开灯
  7. logmmse降噪算法
  8. G代码表《G代码大全》
  9. 英语“就近原则”和“就远原则”
  10. JavaCV 绘制多边形
  11. python下载慢怎么办?
  12. 计算机用户名携带中文路径,Win10 User下的中文用户名改成英文路径操作方法
  13. 词法语法分析器EDG C++
  14. 虚拟存储器:页面置换算法
  15. vue使用阿里字体教程(引入外部字体)
  16. NLP_learning 中文基本任务与处理(分词、停用词、词性标注、语句依存分析、关键词抽取、命名实体识别)介绍、jieba工具库
  17. java 抛出异常后,还会执行后面代码吗?
  18. JAVA中利用break加标签的方式跳出双重for循环
  19. 管理学总论之管理活动、管理思想和古典管理理论
  20. 人工智能算法模型--Alpha-Beta剪枝算法学习笔记

热门文章

  1. 查看远程计算机的共享,win7怎么查看远程机器共享文件夹
  2. 码神之路项目——总结
  3. Pymol 移动配体操作
  4. python启动不了浏览器_selenium+python自动化测试--解决无法启动IE浏览器及报错问题...
  5. ESP8266的使用
  6. Linux(Centos7)安装tomcat8
  7. 北理工嵩天Python语言程序设计笔记(8 文件和数据格式化)
  8. Android Studio使用碰到报错问题记录
  9. FabFilter Total Bundle for Mac(FabFilter音频插件包) v2019特别版
  10. .NET都实现平台统一了你还不会WPF界面设计?