2011-11-14 43 views
16

我知道ListAdapter是一個接口,而ArrayAdapter是一個類。所以我們只能實例化ArrayAdapter。我遇到了一個代碼Android中ArrayAdapter和ListAdapter的區別?

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?

謝謝

回答

25

這與Android無關。但是一個普通的Java問題。

當您使用ListAdapter作爲變量的類型時,您確實對界面感興趣。您可能沒有興趣致電ListAdapter中沒有的ArrayAdapter<String>的某些特定方法。這主要是因爲您只需將適配器分配給視圖的列表適配器即可。

如果您確實需要調用某些特定方法,則可以使用ArrayAdapter<String>的精確類型。

這一切都取決於你的用例。

0

BaseAdapter 它是一個非常通用的適配器,可以讓你做任何你想做的事情。 它是所有適配器的基類。

ArrayAdapter 它是一個更完整的實現,在數組或數據的ArrayList效果很好。 同樣,如果數據在Cursor中,則應該使用相關的CursorAdapter。 這兩個擴展BaseAdapter

相關問題