【发布时间】:2011-06-22 15:03:04
【问题描述】:
我想做一个ArrayAdapter 来显示图像和文本。如果可能的话,我不想要例子。我想请人解释一下getView() 的工作原理。
谢谢。
【问题讨论】:
标签: android android-arrayadapter
我想做一个ArrayAdapter 来显示图像和文本。如果可能的话,我不想要例子。我想请人解释一下getView() 的工作原理。
谢谢。
【问题讨论】:
标签: android android-arrayadapter
getView() 是适配器的主要部分。它返回View,它将显示为您的列表/网格/图库/任何使用适配器项的视图。它在您滚动视图时触发(例如列表)。
所以你应该做的第一件事就是创建你的自定义适配器。您可以从BaseAdapter 扩展它。然后您需要创建一些数据来显示(或从外部将其传递给适配器 - 这是更好的解决方案)。
之后覆盖getView() 方法并确保在那里返回您的自定义视图。在您的情况下,它应该是带有ImageView 和TextView 的Layout(并且不要忘记填写它们)。
您可以通过以下方式了解更多信息:
【讨论】:
在BaseAdapter 中,您有getView 函数,该函数由AdapterView 调用,即ListView。
您需要重写 BaseAdapter 的 getCount 方法以返回显示的视图总数。
在 getView 中你会得到以下内容:
public View getView(int position, View convertView, ViewGroup parent)
位置:
getView 将为每个位置调用每次显示。
转换视图
由于getView 被多次调用,每次都膨胀一个新视图很昂贵,因此列表视图为您提供了以前创建的视图之一以供重复使用。
父母
对父视图的引用,该视图将成为其子视图。
ArrayAdapter 是BaseAdapter 的子类,它在构造函数中采用ArrayList(或数组)。
并为您覆盖getCount。
所以你只需要实现getView
【讨论】: