对于ListView适配器,getView()如何调用?

时间:2014-11-19 00:04:07

标签: android listview

我看了很多,但没有找到这个问题的真正答案。我刚刚开始学习Android适配器,并有几个问题。首先,我需要手动调用getView()还是自动调用?如果是这样,它何时被称为?最后,我注意到列表中有“position”的参数。这是我必须通过迭代递增还是以某种方式在内部递增?

谢谢!

3 个答案:

答案 0 :(得分:3)

  

首先,我需要手动调用getView()还是调用它   自动?

不,它会被自动调用。

  

如果是这样,它何时被实际调用?

当用户对您的ListView执行某些操作时,系统会调用此信息,例如当您在滚动时显示新项目的ListView时。

  

最后,我注意到有一个“位置”的参数   名单。这是我必须通过迭代增加或确实增加的东西   它会以某种方式在内部递增?

不,它会自动成为您列表项的位置。对于其他参数(如默认值)View convertView,它是相同的,它将是当前项的ViewListView行)。

答案 1 :(得分:0)

这是适配器工作方式的一部分。您不需要调用任何这些方法,因为它是通过Listview隐式调用的。

看看这个,

http://www.vogella.com/tutorials/AndroidListView/article.html

这是一篇关于如何使用Listview的好文章。

答案 2 :(得分:0)

Adapter是AdapterView(ListView,GridView等)和数据数组之间的一种连接。适配器生成将在AdapterView中显示的vies。 因此,当ListView需要显示元素时,它首先调用适配器的getCount()方法,经过一些测量后,它会调用一些getView()来填充listView的可见部分。然后在滚动期间,ListView将从适配器调用getView()以用于下一个位置。 重要的是不要对getView()调用的顺序做出任何假设 - listview不一定要按照你订购的数据的顺序调用getView()。 因此您不必担心增加位置索引 - 此参数用于情境,例如,当您需要为偶数行和奇数行显示两个不同的背景时 - 您可以使用位置来决定哪种颜色你需要使用。 关于ListView

的解剖学有一个很好的介绍