В ответ на ваши 3 вопроса:
(1) BaseAdapter , согласно документации Android, является просто суперклассом нескольких типов адаптеров, одним из которых является ArrayAdapter
. Существует ряд других адаптеров, разработанных для BaseAdapter
различных целей. В результате маловероятно, что между ними есть разница в эффективности; вы просто получаете доступ к другому набору функций / методов с различными подклассами.
(2) Эффективность вашего ArrayAdapter
зависит от эффективности того, что вы делаете внутри этого класса, т. Е. Обработки растровых изображений и других данных.
(3) Вероятно, вы могли бы найти способ работы, ListView
используя другой тип адаптера, однако причина в ArrayAdapter
том, что это обычно имеет смысл, учитывая, что цель состоит в создании интерактивного списка. ArrayAdapte
Принимает Array
, как правило, ArrayList
из объектов, которые она обрабатывает информацию для создания подложки для ListView
. В этом смысле установка ArrayList
-> ArrayAdapter
-> ListView
логически имеет смысл.