调用ArrayAdapter中的getView()时

时间:2012-04-15 08:08:03

标签: java android layout adapter android-arrayadapter

在android中为adapter创建自定义ListView时,我发现我必须创建一个扩展ArrayAdapter类的类并实现getView(..)方法。

所有这一切都没问题,但我想知道调用方法和执行的顺序。即在getView()被调用的代码点?

3 个答案:

答案 0 :(得分:12)

多次调用ArrayAdapter的getView()....

  1. 作为添加新行的时间......
  2. 向上滚动并向下滚动列表视图....
  3. 当列表未被更改时..
  4. 请参阅此链接 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,直到您的整个列表已从列表中分配布局和数据。