Différence entre ArrayAdapter et ListAdapter dans Android?

Je sais que ListAdapter est une interface et ArrayAdapter est une classe. Nous ne pouvons donc qu'instancier ArrayAdapter. J'ai rencontré un code

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

Mais j'ai été capable de faire la même chose avec

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

Alors je veux savoir, à quels endroits précis avons-nous besoin D'un Listadapteur ?

Merci

16
demandé sur alex 2011-11-14 19:00:08

2 réponses

ceci n'est pas lié à Android. Mais une question générale sur Java.

quand vous utilisez ListAdapter comme le type de votre variable, vous êtes vraiment intéressé par l'interface. Vous pouvez ne pas être intéressé à appeler une méthode spécifique de ArrayAdapter<String> non disponible ListAdapter. C'est principalement parce que vous allez juste assigner l'adaptateur comme adaptateur de liste pour la vue.

Vous pouvez utiliser le type de ArrayAdapter<String> si vous avez vraiment besoin d'appeler certaines méthodes spécifiques.

Il tout dépend de votre cas d'utilisation.

25
répondu Pierre 2013-05-05 22:17:10

BaseAdapter C'est une très générique adaptateur qui permet de faire à peu près tout ce que vous voulez. C'est une classe de base de tous les adaptateur.

ArrayAdapter C'est une implémentation plus complète qui fonctionne bien pour les données dans les tableaux ou les tableaux. De même,il CursorAdapter que vous devriez utiliser si vos données sont dans un Curseur. Les deux prolongent BaseAdapter

0
répondu Amit Walke 2017-01-03 11:10:55