java - setadapter - listview android design
¿Diferencia entre ArrayAdapter y ListAdapter en Android? (2)
Sé que ListAdapter es una interfaz y ArrayAdapter es una clase. Así que solo podemos instanciar ArrayAdapter. Me encontré con un código
ListAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, songNames);
Pero pude hacer lo mismo con
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, songsArray);
Así que quiero saber, ¿en qué lugares exactos necesitamos ListAdapter?
Gracias
Esto no está relacionado con Android. Pero una pregunta general de Java.
Cuando usa ListAdapter
como el tipo para su variable, está realmente interesado en la interfaz. Es posible que no esté interesado en llamar a algún método específico de ArrayAdapter<String>
no disponible en ListAdapter
. Esto se debe principalmente a que simplemente asignará el adaptador como el adaptador de lista para la vista.
Puede usar el tipo preciso de ArrayAdapter<String>
si realmente necesita llamar a algunos métodos específicos.
Todo depende de tu caso de uso.
BaseAdapter Es un adaptador muy genérico que te permite hacer prácticamente lo que quieras. Es una clase base de todos los adaptadores.
ArrayAdapter Es una implementación más completa que funciona bien para datos en arreglos o ArrayLists. De manera similar, hay un CursorAdapter relacionado que debe usar si sus datos están en un Cursor. Ambos extienden el Adaptador de Base