ArrayAdapter的getView()方法如何工作?

42

我想要创建一个ArrayAdapter来展示图像和文本。如果可能的话,我不想要例子。我希望有人能够解释一下getView()方法是如何工作的。

谢谢。

2个回答

27

getView() 是你的适配器的主要部分。它返回一个View,该视图将作为列表/网格/画廊或使用适配器项的任何视图显示。当您滚动视图(例如列表)时,它会触发。

因此,您应该首先创建自定义适配器。您可以从BaseAdapter扩展它。然后,您需要创建一些要显示的数据(或从外部传递它们到适配器 - 这是更好的解决方案)。

之后,覆盖getView()方法,并确保在其中返回您的自定义视图。在您的情况下,它应该是一个带有ImageViewTextViewLayout(不要忘记填充它们)。

您可以了解更多信息:


第二个链接已经失效了。 :-( - Ellen Spertus
4
已添加了几个新链接。 - Yakiv Mospan

13

BaseAdapter中,你有一个被AdapterView调用的getView函数,例如ListView

你需要重写BaseAdapter的getCount方法,返回要显示的视图的总数。

在getView中,你可以获得以下内容:

public View getView(int position, View convertView, ViewGroup parent) 
  1. 位置:

    每次显示时,都会调用 getView 来呈现每个位置

  2. convertView

    由于每次调用 getView 都要膨胀一个新视图,这是很昂贵的,因此列表视图提供了一个先前创建的视图以重用。

  3. parent

    这个视图将成为其子级的父视图的引用。

ArrayAdapterBaseAdapter 的子类,它在构造函数中使用 ArrayList(或数组)并覆盖了 getCount

所以你需要实现的就是 getView


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接