En respuesta a sus 3 preguntas:
(1) BaseAdapter , según los documentos de Android, es solo una superclase de varios tipos de adaptadores, uno de los cuales es ArrayAdapter
. Hay una serie de otros adaptadores que se derivan de BaseAdapter
que se adaptan a diferentes propósitos. Como resultado, es improbable que exista alguna diferencia de eficiencia entre los dos; simplemente obtiene acceso a un conjunto diferente de funciones / métodos con las diversas subclases.
(2) La eficiencia de su ArrayAdapter
depende de la eficiencia de lo que está haciendo dentro de esa clase, es decir, el procesamiento de mapas de bits y otros datos.
(3) Probablemente pueda encontrar una manera de trabajar ListView
con un tipo diferente de adaptador, sin embargo, la razón por la que ArrayAdapter
funciona es porque generalmente tiene sentido dado que el objetivo es crear una lista interactiva. El ArrayAdapte
toma un Array
, generalmente un ArrayList
de objetos, que luego procesa para crear la información de respaldo para el ListView
. En ese sentido, la configuración de ArrayList
-> ArrayAdapter
-> ListView
lógicamente tiene sentido.