当ListView每个item都比较复杂的时候,复用的时候更新item的内容需要我们找到每一个item中的子控件,来更新他们的内容,查找item中子控件这个过程是

非常浪费时间的,我们可以用setTag的方式将子控件与一个viewholder关联起来,在复用的时候直接getTag即可得到viewholder,节省了查找子控件的时间

     //根据listview中要绑定的item子控件来构造viewholderstatic class ViewHolder{ImageView iv_icon;TextView tv_app_size;TextView tv_app_name;}private class AppManagerAdapter extends BaseAdapter{private ViewHolder holder;public int getCount() {return mSystems.size();}public Object getItem(int position) {AppInfo appInfo;appInfo =mSystems.get(position - 1 - mUsers.size() - 1);return appInfo;}public long getItemId(int position) {return position;}public View getView(int position, View convertView, ViewGroup parent) {View view = null;if(convertView != null && convertView instanceof  LinearLayout){view = convertView;//复用的时候直接getTag,省去了频繁findViewByIdholder = (ViewHolder) view.getTag();}else{view = View.inflate(AppManagerActivity.this, R.layout.item_app_manager, null);//创建一个holder对象holder = new ViewHolder();//将holder与item子控件关联holder.iv_icon = (ImageView) view.findViewById(R.id.iv_icon);holder.tv_app_size = (TextView) view.findViewById(R.id.tv_app_size);holder.tv_app_name = (TextView) view.findViewById(R.id.tv_app_name);//设置tagview.setTag(holder);}//获取应用的基本数据。AppInfo appInfo;appInfo = mSystems.get(position - 1 - mUsers.size() -  1 );//设置数据holder.iv_icon.setImageDrawable(appInfo.getIcon());holder.tv_app_size.setText(appInfo.getApkSize());holder.tv_app_name.setText(appInfo.getAppName());return view;}}

ListView优化之ViewHolder相关推荐

  1. ListView优化的代码

    第三种ListView优化:通过convertView+ViewHolder来实现,ViewHolder就是一个静态类,使用 ViewHolder 的关键好处是缓存了显示数据的视图(View),加快了 ...

  2. 【提升栈】ListView优化

    前言 ListView优化一直是一个老生常谈的问题.无论是面试还是寻常的开发中,ListView永远不会被忽略掉,那么这篇文章我们来看看怎样最大化的优化ListView的性能. 1.在adapter中 ...

  3. ListView优化机制及滑动时数据时出现的数据错乱重复问题

    ListView优化机制及滑动时数据时出现的数据错乱重复问题 转载于:https://www.cnblogs.com/zhujiabin/p/5596998.html

  4. Android之ListView优化

    关于ListView几个方面的优化: ListView的大小设定固定值; 复用convertView, 使用ViewHolder提高在容器中查找组件的效率; 使用分页加载; 快速滚动时, item不显 ...

  5. 面试之 listview优化

    2019独角兽企业重金招聘Python工程师标准>>> 摘用别人的,谢谢作者 Adapter的作用是界面与数据之间的桥梁,通过设置适配器至ListView控件后(如调用ListVie ...

  6. Android listview优化以及listview混合itemview

    listView = (ListView) findViewById(R.id.listview); mAdapter = new VideoListAdapter(this); listView.s ...

  7. Android优化系列之ListView优化老生常谈

    本文内容:adapter,listview的优化,RecycleBi,google大会推荐优化, 实现ListView的过程,Adapter起到了至关重要的作用,不仅仅因为getview()方法.那么 ...

  8. ListView优化机制及滑动时数据时出现的数据错乱重复问题 图片、checkBox等

    该篇内容主要是记录我在实际开发中遇到的ListView滑动时数据错乱的几种情况,以及解决方法.在进行ListView滑动时数据错乱问题讨论之前会对ListView所谓的<优化>进行说明.文 ...

  9. Android ListView优化之局部刷新(更新)(非notifyDataSetChanged)

    转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53020164 [DylanAndroid的csdn博客] 在Android开发 ...

  10. Android开发实战《手机安全卫士》——8.“通信卫士”模块实现 JUnit测试 ListView优化

    文章目录 1.高级工具--去电归属地显示 2.通信卫士--黑名单布局编写 3.通信卫士--黑名单数据库 4.通信卫士--黑名单CRUD功能实现 5.通信卫士--JUnit测试 6.通信卫士--黑名单号 ...

最新文章

  1. PCA(2):PCA算法实现的两种方式
  2. R语言Eta squared计算实战:Eta squared表示可以用模型中给定的变量解释的方差的比例、拟合方差分析模型(two-way ANOVA)、计算Eta Squared
  3. 大数据基础设施建设需要得到重视 | 记清华大数据“应用·创新”讲座
  4. 华硕主板X99-E WS/USB 3.1固件更新
  5. c的关于数组初始化 和 memset用法
  6. PHP中等良好优秀,成绩优秀,中等,良好怎么分的啊?分为哪几个?
  7. php web server setup,PHP本地开发利器:内置Web Server
  8. SL4A/Py4A直接在adb中用python加载脚本
  9. Ubuntu下Hbase安装(一、相应的版本Hbase下载)
  10. python你TM太皮了——区区30行代码就能记录键盘的一举一动
  11. 职教云计算机网络基础题库,智慧职教云课堂APP计算机组装与维护章节测试答案...
  12. 发送邮件功能:使用Spring Email、邮件工具类、使用Thymeleaf模板引擎 发送html邮件
  13. kubeadm集群化部署多master节点(生产环境适用)
  14. 基于ARM的嵌入式Linux开发平台
  15. 计算机网络原理【第三章 数据链路层】课后习题答案
  16. 6-2 两个字符串穿插 (10 分) pta c语言
  17. 导航窗格里计算机在桌面下,电脑桌面工具栏如何调到下方
  18. 对世界观的一些常识性认识,总结看过的各种东西,三十而立,需要成熟思维了
  19. HTML中常用的空白字符写法
  20. 【大数据入门核心技术-Hbase】(一)HBase简介

热门文章

  1. AvalonDock使用(2)-简单布局设置
  2. PTA离散数学集合论自测(无答案版)
  3. DSP方案山景AP8224C2芯片可烧录适用USB声卡降噪麦克风
  4. 2020年全球石英晶振行业现状、竞争格局及未来发展趋势分析,5G推动万物互联,带动行业需求「图」
  5. 【U盘量产】你的U盘坏了吗
  6. 组态TwinCat软件安装时,There are some files marked for deletion on next reboot.Please reboot first and then
  7. 网络爬虫——淘宝网页面分析思路
  8. 机器人也会骑车?日本村田顽童来京秀车技
  9. 华为access、trunk、hybird接口从tag和untag进行了解。
  10. html5生成桌面图标,简单几步打造独一无二的动态桌面图标