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

有人能告诉我在Adapter类的getView()方法中使用了convertView参数吗?

下面是一个示例代码:

 @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传递什么?

我发现, 从这里拿走 :

获取一个视图,显示数据集中指定位置的数据。 您可以手动创build视图,也可以从XML布局文件中将其充气。 当视图膨胀时,除非使用inflate(int,android.view.ViewGroup,boolean)指定根视图并防止附加到根,否则父视图(GridView,ListView …)将应用默认布局参数。

参数

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

convertView – 旧的视图重用,如果可能的话。 注意:在使用之前,您应该检查这个视图是非空的和适当的types。 如果无法将此视图转换为显示正确的数据,则此方法可以创build新的视图。

– 该视图最终将附加到的父项返回

返回 – 与指定位置上的数据对应的视图。

你不应该自己调用这个方法。

Android的ListView使用一个Adapter来填充自己的Views 。 当显示ListView ,它开始调用getView()来填充自己。 当用户滚动一个新的视图时,应该创build一个新的视图,所以为了提高性能, ListViewAdapter发送一个旧视图,在convertView参数中不再使用它。