在扩展 ArrayAdapter 时,我可以选择一个以资源作为参数的构造函数:
ArrayAdapter(Context context, int resource, T[] objects)
此资源可用作 ListView 项目的布局。但是我如何访问给定的资源呢?我找不到像 getResource 或 getItemLayoutResource 这样的方法。我现在所做的就是构造函数中的 this.resource = resources ,以便稍后使用它。但是,如果我可以将资源提供给 BaseAdapter,为什么我要这样做:
super(context, resource, objects);
为什么我需要这个:我想在 getView 上的 LayoutInflator 中使用它。 也许我对这个参数的理解是错误的。它在 super 上到底做了什么?
最佳答案
super 所做的事情与您所做的非常相似,并且 getView 的基本实现使用它。 如果您只使用 ArrayAdapter 而不扩展它,并为其提供像 simple_list_item_1 这样的资源,您将获得字符串的基本显示。
public View getView(int position, View convertView, ViewGroup parent) {
return createViewFromResource(position, convertView, parent, mResource);
}
其中 mResource 是从您在构造函数中提供的资源保存的。
不幸的是,它是一个没有 getter 的私有(private)成员
关于android - ArrayAdapter - 获取列表项的给定资源 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26379363/