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
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.
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