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。
我正在设置一个 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。