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

时间:2011-11-14 15:00:08

标签: java listview 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?

谢谢

2 个答案:

答案 0 :(得分:25)

这与Android无关。但是一般的Java问题。

当您使用ListAdapter作为变量的类型时,您真的对界面感兴趣。您可能对调用ArrayAdapter<String>ListAdapter中未提供的某些特定方法感兴趣。这主要是因为您只需将适配器指定为视图的列表适配器。

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

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

答案 1 :(得分:-1)

<强> BaseAdapter 它是一个非常通用的适配器,可以让你做任何你想做的事情。 它是所有适配器的基类。

<强> ArrayAdapter             它是一个更完整的实现,适用于数组或ArrayLists中的数据。             同样,如果您的数据位于Cursor中,则应使用相关的CursorAdapter。             这两个都扩展了BaseAdapter