首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bindView()和newView()在CursorAdapter中的作用

bindView()和newView()在CursorAdapter中的作用
EN

Stack Overflow用户
提问于 2012-10-01 19:53:39
回答 1查看 31.7K关注 0票数 25

我的项目中有一个自定义的CursorAdaptor,其中包含被覆盖的方法bindView(View view, Context context, Cursor cursor)newView(View view, Context context, Cursor cursor)。我想知道CursorAdapter是用来做什么的,覆盖bindView()newView()的区别和用途是什么。

我已经阅读了Developer Sitethis教程,但我仍然不理解。由于我是Android的初学者,请帮助我理解这个概念。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-01 20:10:27

为了理解这一点,您必须首先了解BaseAdapter是如何工作的,因为CursorAdapterBaseAdapter的子类。

安卓为一个ListView维护了一个视图池,它会提供给你,这样你就可以重用它,而不是每次都创建一个新的视图。

BaseAdapter中,您将拥有一个名为getView()的函数,其中一个参数是名为convertViewView对象。基本上,如果列表是第一次加载,这个convertView将是null,而一旦你开始滑动列表,它将不是null。因此,在BaseAdaptergetView()方法中,您将检查convertView是否为null。如果是,你就会膨胀它。然后,您可以使用该视图并将其元素设置为正常。这将极大地提高列表视图的滚动性能。

当listview的数据源是数据库时,CursorAdapter使其易于使用。然而,在光标适配器中,安卓负责检查convertView是否为null。在newView()方法中,您只需膨胀视图并返回它。在bindView()方法中,设置视图的元素。

例如,想象一个设备上的列表视图,它可以在屏幕上显示多达11个列表项。在这种情况下,newView()将被调用最多11次。但是,每当滚动列表视图时,bindView()都会被调用多次。滚动列表时,将一次又一次地重用在newView方法中创建的11个视图。

票数 126
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12672749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档