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

关于findbyid方法

视频既然说findById方法耗时,为什么这里还是用到findById方法

正在回答

2 回答

我回答下,这里有两个问题。

1、首先第一这里的关键不是findviewbyid比其他耗时。不是这个原因。这里主要的原因是,如果只是纯粹的使用findViewById,那么其实在每次调用getView这个方法的时候都创建了控件对象。简单来说比如你有10个item,那么对于的item中的ImageView对象创建了10个。假如你item有1000条1万条,那对于的你里面的对象就创建了多少个。这样太消耗内存了。

2、而通过setTag和getTag的方法,其实只是在第一次创建了控件对象,之后一直在复用之前的。

3、这里所谓的文艺式,其实核心内容就是复用。复用两个内容。第一个是整个item的view对象。第二个就是item中里面的单个控件。简单来说对象还是那个对象,唯一不同的就是对象里面的参数。

1 回复 有任何疑惑可以回复我~

普通式的findById是从R文件里面找的,文艺式的是用getTag从之前加载过的Adapter里面找,很明显R文件里的id要比加载过的Adapter要多得多,所以后者效率高。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android必学-BaseAdapter的使用与优化
  • 参与学习       42593    人
  • 解答问题       93    个

了解数据适配器的使用方法,写出高效、文艺的BaseAdapter

进入课程

关于findbyid方法

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信