在android中为adapter
创建自定义ListView
时,我发现我必须创建一个扩展ArrayAdapter
类的类并实现getView(..)
方法。
所有这一切都没问题,但我想知道调用方法和执行的顺序。即在getView()
被调用的代码点?
答案 0 :(得分:12)
多次调用ArrayAdapter的getView()....
请参阅此链接 Android custom ArrayAdapter getView method called multiple times - resetting dynamic TextView value
答案 1 :(得分:7)
来自android文档 - Adapter对象充当AdapterView(在您的情况下为ListView)与该视图的基础数据之间的桥梁。适配器提供对数据项的访问,还负责为数据集中的每个项目创建视图。
因此,每当ListView需要显示特定的数据行时,它就会请求关联的适配器通过getView()方法提供与该位置的数据相对应的视图。每当需要在屏幕上更新视图时(例如,在创建/滚动等期间),都可能发生这种情况。
作为应用程序开发人员,只要在适配器中提供具体的getView()实现,就不必担心在何时调用getView()。确保方法有效(缩略图等应该在后台线程中加载)以获得最佳性能。
答案 2 :(得分:0)
getView(int position, View view, ViewGroup parent)
被称为
List of Objects
使用的元素数量
getItem(int position)
我们列表的长度
所以,它被称为nos of times,直到您的整个列表已从列表中分配布局和数据。