ArrayAdapter getView() 方法中的 “convertView” 参数是什么

2022-09-01 03:58:40

有人可以告诉我该参数在类的方法中的用途吗?convertViewgetView()Adapter

下面是从这里获取的示例代码:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View v = convertView;
    if (v == null) {
        LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        v = vi.inflate(R.layout.row, null);
    }
    Order o = items.get(position);
    if (o != null) {
        TextView tt = (TextView) v.findViewById(R.id.toptext);
        TextView bt = (TextView) v.findViewById(R.id.bottomtext);
        if (tt != null) {
            tt.setText("Name: "+o.getOrderName());                            }
        if(bt != null){
            bt.setText("Status: "+ o.getOrderStatus());
        }
    }
    return v;
}

我们应该传递什么?convertView

我发现的,从这里开始

获取一个视图,该视图显示数据集中指定位置的数据。您可以手动创建视图,也可以从 XML 布局文件中扩充视图。当视图膨胀时,父视图(GridView,ListView...)将应用默认布局参数,除非您使用 inflate(int,android.view.ViewGroup,布尔值)来指定根视图并防止连接到根。

参数

position -- 项目在适配器的数据集中的位置,该数据集是我们想要其视图的项目。

convertView -- 如果可能,要重用的旧视图。注意:在使用之前,您应该检查此视图是否为非 null 且类型合适。如果无法转换此视图以显示正确的数据,则此方法可以创建新视图。

parent -- 此视图最终将附加到 Returns 的父级

returns -- 与指定位置处的数据相对应的视图。


答案 1

您不应该自己调用该方法。

Android's 使用 a 来填充 .当显示时,它开始调用以填充自身。当用户滚动时,应创建一个新视图,因此为了提高性能,它会发送一个旧视图,表明它在参数中不再使用。ListViewAdapterViewsListViewgetView()ListViewAdapterconvertView


答案 2

推荐