我看了很多,但没有找到这个问题的真正答案。我刚刚开始学习Android适配器,并有几个问题。首先,我需要手动调用getView()还是自动调用?如果是这样,它何时被称为?最后,我注意到列表中有“position”的参数。这是我必须通过迭代递增还是以某种方式在内部递增?
谢谢!
答案 0 :(得分:3)
首先,我需要手动调用getView()还是调用它 自动?
不,它会被自动调用。
如果是这样,它何时被实际调用?
当用户对您的ListView
执行某些操作时,系统会调用此信息,例如当您在滚动时显示新项目的ListView
时。
最后,我注意到有一个“位置”的参数 名单。这是我必须通过迭代增加或确实增加的东西 它会以某种方式在内部递增?
不,它会自动成为您列表项的位置。对于其他参数(如默认值)View convertView
,它是相同的,它将是当前项的View
(ListView
行)。
答案 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
的解剖学有一个很好的介绍