Android中的ArrayAdapter和ListAdapter之间的区别?

我知道ListAdapter是一个接口,ArrayAdapter是一个类。因此,我们只能实例化 ArrayAdapter。我遇到了一个代码

ListAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, songNames);

但是我能够做同样的事情

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, songsArray);

所以我想知道,在哪些确切的地方我们需要ListAdapter?

谢谢


答案 1

这与Android无关。但是一个通用的Java问题。

当您用作变量的类型时,您确实对接口感兴趣。您可能对调用 中不可用的某些特定方法不感兴趣。这主要是因为您只需将适配器指定为视图的列表适配器。ListAdapterArrayAdapter<String>ListAdapter

如果您确实需要调用某些特定方法,则可以使用精确类型。ArrayAdapter<String>

这完全取决于您的使用案例。


答案 2

基本适配器它是一个非常通用的适配器,可让您做任何您想做的事情。它是所有适配器的基类。

ArrayAdapter它是一个更完整的实现,适用于数组或数组列表中的数据。同样,如果数据位于游标中,则应使用一个相关的 CursorAdapter。这两者都扩展了BaseAdapter


推荐