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

时间:2017-03-11 17:55:02

标签: java android generics arraylist android-arrayadapter

我正在设置OnItemClickListener,我无法看到两种方法之间的区别,它们都运行得很好,我无法从文档中了解它们之间的区别。

2 个答案:

答案 0 :(得分:4)

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

适配器方法调用另一个。

ArrayAdapter<T> Android Source code.

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

你实际上并不需要&#34;在您的班级中独立存储Arraylist。

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

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

答案 1 :(得分:0)

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

主要优点是您不必管理列表和适配器,并且在更新阵列时将更新UI。但是,您可能需要致电

adapter.notifyDataSetChanged();

在某些时候刷新UI。