ArrayList.get(int index) 和 ArrayAdapter.getItem(int position) 方法有什么区别?

What is is the difference between ArrayList.get(int index) and ArrayAdapter.getItem(int position) methods?

我正在设置一个 OnItemClickListener,我看不出这两种方法之间的区别,它们都工作得很好,而且我无法从文档中理解它们之间的区别。

它们在不同的 classes 上定义 - 这是唯一的区别。

适配器方法调用另一个。

ArrayAdapter<T> Android Source code.

public T getItem(int position) {
    return mObjects.get(position);
}

您实际上 "need" 不会在 class 中独立存储 Arraylist。

ArrayAdapter 有自己的 add() 方法,您可以调用不带列表的构造函数。

public ArrayAdapter(@NonNull Context context, @LayoutRes int resource) {
    this(context, resource, 0, new ArrayList<>());
}

主要区别在于适配器更适合显示 UI 中的信息。因此,如果您必须在 ListView 中显示列表,您可以只使用适配器。

主要优点是您不必同时管理列表和适配器,UI 将随着数组的更新而更新。但是,您可能需要致电

adapter.notifyDataSetChanged();

在某个时候刷新 UI。