位置: 编程技术 - 正文

提升ListView运行效率两个方法(listview提高效率)

编辑:rootadmin
一、首先我们先实现ListView的构建工作

推荐整理分享提升ListView运行效率两个方法(listview提高效率),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:如何让listview提高效率,如何让listview提高效率,listview性能优化,listview性能优化,listview加载大量数据,listview加载大量数据,listview如何优化,listview更新,内容如对您有帮助,希望把文章链接给更多的朋友!

1.定义一个实体类,作为ListView适配器的适配类型。新建Fruit类,代码如下:

2.然后需要为ListView的子项指定一个我们自定义的布局,在layout目录下新建fruit_item.xml,代码如下:

3.接下来我们要创建一个适配器,这个适配器继承自ArrayAdapter,并指定泛型类型为Fruit类。新建FruitAdapter,代码如下:

4.下面在main.xml中加入一个ListView:

5.然后MainActivity:

提升ListView运行效率两个方法(listview提高效率)

运行实例如下:

二、提升ListView的运行效率

ListView这个控件很难用,因为它有很多细节可以优化,其中运行效率就是很重要的一点。目前我们的ListView的运行效率很低,因为在FruitAdapter的getView()方法中每次都将布局重新加载了一遍,当ListView快速滚动的时候就会成为性能的瓶颈。

仔细观察,getView()方法还有一个convertView参数,这个参数用于将之前加载好的布局进行缓存,以便之后可以进行重用。修改FruitAdapter中的代码:

可以看到,现在我们在getView()方法中进行了判断,如果convertView为空,则使用LayoutInflater去加载布局,如果不为空则直接对convertView进行重用。这样就大大提高了ListView 的运行效率,在快速滚动的时候也可以变现出更好的性能。

不过目前我们的代码还是可以优化的,虽然我们现在已经不会再重复去加载布局,但是每次在getView()方法中还是会调用View的findViewById()方法去获取一次控件的实例。我们借助一个ViewHolder来对这部分性能进行优化,修改FruitAdapter中的代码:

我们新增了一个内部类ViewHolder,用于对控件的实例进行缓存。当converView为空的时候创建一个ViewHoler对象,并将控件的实例都放在ViewHolder里,然后调用View的setTag()方法,将ViewHolder对象存储在View中。当当converView不为空则调用View的getTag()方法,把ViewHolder重新取出。这样所有的控件的实例都缓存在了ViewHolder里,就没有必要每次都通过findViewById()方法来获取控件的实例了。通过这两步优化之后,ListView的运行效率就已经非常不错了。

android 4.0 兼容性问题 java.lang.NoSuchMethodError TextView.setBackground Android版本更替,新的版本带来新的特性,新的方法。新的方法带来许多便利,但无法在低版本系统上运行,如果兼容性处理不恰当,APP在低版本系统上

Android 退出整个应用程序解决方案 1、通过广播相信有过项目经验的同学都遇到过这样的问题,就是设计退出功能时可能会遇到有些界面不能关闭的问题。当然如果你的项目所有的界面都

android快递跟踪进度条 android快递跟踪进度条activity.classimportjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importandroid.app.Activity;importandroid.os.Bundle;importandroid.wi

标签: listview提高效率

本文链接地址:https://www.jiuchutong.com/biancheng/384256.html 转载请保留说明!

上一篇:讲java项目转成android项目(java项目怎么变成web项目)

下一篇:android 4.0 兼容性问题 java.lang.NoSuchMethodError TextView.setBackground(如何解决android兼容问题)

  • 一般纳税人预缴税款几个点
  • 计提所得税分录计提的时候金额比实际缴纳多
  • 车船使用税代扣怎么计算
  • 增值税留抵税额账务处理
  • 货物已到发票未开具
  • 筹建期印花税退税分录
  • 其他债权投资减值账务处理
  • 收付转凭证如何排序装订
  • 货到票未到怎么入账
  • 公司代扣社保为什么是400多余的钱
  • 未开票收入如何申报增值税,下个月怎么操作
  • 劳务派遣能不能预支工资
  • 各部门发生的医保费用
  • 公司出售厂房的增值税允许抵扣吗
  • 研发新产品成功案例简短
  • 股权转让资本公积怎么处理
  • 国家级企业孵化器是什么意思
  • 营改增的真实目的
  • 注册资本印花税税目是什么
  • 非同一控制下企业合并的交易费用
  • 去年红字发票怎么做账
  • 停车场收入如何确认缴税
  • 扣缴上月税费会计分录
  • 坏账损失如何连续计提
  • 稻谷增值税税率多少
  • 发票额度1万申请10万的条件
  • 做进项转出的票据有哪些
  • 长期未收回的应收账款企业所得税
  • 库存商品换货的会计分录
  • 企业分红需要缴纳什么税
  • 银行承兑找个人怎么操作
  • 研发销售型软件有哪些
  • 农业种植公司要纳税吗
  • 电脑用久了会出现什么问题
  • windows7使用方法
  • 收到单据
  • 登记总账的科目有哪些
  • 没签订采购合同怎么办
  • 差额征税七种业务是什么
  • 接受投资收到的现金计入
  • 递延收益会计科目核算什么内容
  • 公司基本户被冻结,其它账户也会被冻吗?
  • 工会收到单位拨款的会计分录
  • 5年前开的发票退货可以冲红吗?
  • python 读取图片
  • 长期股权投资初始投资成本的确定
  • 融资购买固定资产账务处理
  • 增值税税目明细
  • 计提工会经费的工资总额包括哪些
  • 金税四期怎么监管消费和发票
  • 负债项目的排列顺序
  • 财政补贴的政策
  • 坏账收回来了怎么处理
  • 选择简易计税方法
  • 其他应收款属于什么会计要素
  • 金税盘发票全额抵扣如何做账
  • 如何把凭证装订机弄坏
  • vi修改文件
  • SUSE Linux Enterprise Server 11 SP3安装教程详解
  • freebsd 安装
  • win10 rs3
  • 如何设置让自己手机号处于关机状态
  • win8软件不兼容怎么办
  • win7一进电脑是花屏
  • Linux 后台执行程序如何操作?
  • Win10预览版镜像
  • js require()
  • unity and unity
  • android判断横竖屏
  • linux 映射 fn键
  • html:xt
  • javascript definitive guide
  • 噩梦pv
  • python for windows
  • js点击按钮实现登陆网页
  • 养鱼业免增值税吗
  • 枸杞税收分类是什么
  • 小规模纳税人在电子税务局怎么报税
  • 福建生育津贴要交满几个月
  • 企业分立需要开发票吗?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设