我更像是一名C ++开发人员,刚刚开始进行Android开发。在了解ListView
{1}}的自定义适配器的过程中,我想到了。
如果查看ArrayAdapter的构造函数,它们都需要一个指向布局的资源。 ArrayAdapter
当我使用默认的ArrayAdapter
类时,我猜传递布局很有用。
但是,由于我可以@Override
在我自己的班级中使用getView
ArrayAdapter
方法,并通过传递资源ID手动夸大视图,为什么ArrayAdapter
需要在其所有构造函数上使用资源ID吗?
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
//In the below line I'm passing the resource id to the inflate method
View rowView = inflater.inflate(R.layout.rowlayout, parent, false);
return rowView;
}
答案 0 :(得分:2)
如果你直接扩展BaseAdapter
,你可以自己处理布局膨胀。但是ArrayAdapter
需要资源来获取项目并使项目布局膨胀。它到底取决于你的实际代码。
我建议您查看ArrayAdapter
的源代码。这可能会对你有所帮助。
如果您不想创建数十个不需要的元素,那么您应该在ArrayAdapters source code中查看有关如何完成视图的一些偏离主题。