我知道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?
谢谢
答案 0 :(得分:25)
这与Android无关。但是一般的Java问题。
当您使用ListAdapter
作为变量的类型时,您真的对界面感兴趣。您可能对调用ArrayAdapter<String>
中ListAdapter
中未提供的某些特定方法感兴趣。这主要是因为您只需将适配器指定为视图的列表适配器。
如果您确实需要调用某些特定方法,则可以使用ArrayAdapter<String>
的精确类型。
这完全取决于您的使用案例。
答案 1 :(得分:-1)
<强> BaseAdapter 强> 它是一个非常通用的适配器,可以让你做任何你想做的事情。 它是所有适配器的基类。
<强> ArrayAdapter 强> 它是一个更完整的实现,适用于数组或ArrayLists中的数据。 同样,如果您的数据位于Cursor中,则应使用相关的CursorAdapter。 这两个都扩展了BaseAdapter