为什么自定义适配器需要资源?

时间:2014-11-28 18:36:51

标签: android

我更像是一名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;
}

1 个答案:

答案 0 :(得分:2)

如果你直接扩展BaseAdapter,你可以自己处理布局膨胀。但是ArrayAdapter需要资源来获取项目并使项目布局膨胀。它到底取决于你的实际代码。

我建议您查看ArrayAdapter的源代码。这可能会对你有所帮助。

如果您不想创建数十个不需要的元素,那么您应该在ArrayAdapters source code中查看有关如何完成视图的一些偏离主题。