为了账号安全,请及时绑定邮箱和手机立即绑定

Android必学-BaseAdapter的使用与优化

难度初级
时长45分
学习人数
综合评分9.63
243人评价 查看评价
9.9 内容实用
9.7 简洁易懂
9.3 逻辑清晰

已采纳回答 / 柴柴土
第一个if判断应该是 if (convertView==null) 吧。判断的是convertView是不是为空,而不是判断viewHolder是不是为空。

最新回答 / qq_Inmylife_1
if(viewHolder==null)改成if(convertView == null)

最新回答 / 下雨整个人都不好了
如果在之前的布局中有iv_image,用@id,如果你还没写iv_image这个控件,也就是写在当前控件的后面的用@+id

已采纳回答 / 零零赫
1。看你的adapter是怎样写的2. 如果你使用了convertview机制,那么就是你所说的加载后如果item离开界面,这个离开界面的item就进入了缓存。另外,显示一条item系统就要调用一次getview方法。3.加载数据是可以控制的,可以预下载,可以缓存,可以在滑动时不加载,在滑动停止后加载。这个属于比较靠后的学习,属于性能优化部分。

最赞回答 / 阿君
视频里说了,通过这个类避免多次调用findViewById(),从而提高效率

最新回答 / 丘比特之箭射不中我
把条目的次数设置的多了以后,确实是时间有很大的差距

最赞回答 / Violetsl
我回答下,这里有两个问题。1、首先第一这里的关键不是findviewbyid比其他耗时。不是这个原因。这里主要的原因是,如果只是纯粹的使用findViewById,那么其实在每次调用getView这个方法的时候都创建了控件对象。简单来说比如你有10个item,那么对于的item中的ImageView对象创建了10个。假如你item有1000条1万条,那对于的你里面的对象就创建了多少个。这样太消耗内存了。2、而通过setTag和getTag的方法,其实只是在第一次创建了控件对象,之后一直在复用之前的。3、这...
课程须知
本课程是Android初-中级课程 1、熟练掌握基本的Android应用程序开发方法 2、熟练掌握Android中常见的适配器的使用 3、熟练掌握BaseAdapter中各方法的意义
老师告诉你能学到什么?
1、了解ListView的缓存机制 2、 BaseAdapter的逗比式 3、 BaseAdapter的普通式 4、 BaseAdapter的文艺式

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消