我的问题是:
有人能告诉我在类convertView的getView()方法中使用了什么参数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;
}
Run Code Online (Sandbox Code Playgroud)
我们应该通过convertView什么?
我发现了什么, …
上下文
我希望有一个列表,列表项有3个明显不同的布局,所以我根据要显示的项类型创建适配器创建适当的视图.
例如,我想列出一些图像,文本和数字,每个都有一些标题.我知道,
public View getView(int position, View convertView, ViewGroup parent)
在convertView看台上重用不再可见listItems中的观点.
问题
如何选择convertView或如何控制我在那里得到的东西?
问题来自不同的listItems视图,假设我的列表以图像listItem开头,然后是很多文本listItems和number listItems和100 listItems后来出现第二个图像.我假设在向下滚动列表时,(在getView(...)调用中)第一个convertView不为null的是带图像的那个,因为我需要一个视图来显示文本listItem或数字listItem我不能使用它.然后我想在每次下一次getView(...)调用时convertView都是与之前调用相同的图像listItem,因为我之前没有使用它.
未使用的文本listItems和number listItems卡住了,当滚动列表时我需要继续创建新视图,这是我想要防止的.