【发布时间】:2014-03-19 00:29:42
【问题描述】:
我正在为我的列表视图使用 ArrayAdapter,但有些东西我不太明白。这是我的代码示例
class ListAdapter extends ArrayAdapter<Item> {
public ListAdapter(Context context, ArrayList<Item> items) {
super(context, R.layout.list_item, items);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi;
vi = LayoutInflater.from(getContext());
v = vi.inflate(R.layout.list_item, null);
}
...some code here....
}
}
我的问题是:如果我已经在“super”调用的构造函数中设置了它的 ID,为什么我需要在“getView”中膨胀布局。?在我通过“super”设置布局 ID 后,这个 ID 是否存储在 ArrayAdapter 中的某个位置?所以我不明白超级调用中的这个“资源ID”是什么......
感谢您的解释:) 最好的问候
【问题讨论】:
-
您正在覆盖 getView。您会注意到您在构造函数中传递的值实际上完全被忽略了。但是,您可以使用
v = super.getView(...)之类的东西,而不是自己调用 inflate。
标签: android listview android-arrayadapter