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一个新的视图,所以为了提高性能, ListView
向Adapter
发送一个旧视图,在convertView
参数中不再使用它。