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