Я новичок в разработке для Android, и у меня возник вопрос об отрывке, который я прочитал в «Руководстве по разработке Android-приложений» от Commonsware. Есть пример, где он создает класс, расширяющий ListActivity, и демонстрирует возможность удаления и удаления из списка через контекстные меню. Перед настройкой ArrayAdapter с источником строк для списка в тексте говорится, что необходимо преобразовать массив String в тип ArrayList, потому что «мы хотим иметь возможность изменять содержимое списка на лету, и это очень проще, если вы используете ArrayList вместо обычного массива String "
Я понимаю эту концепцию, ЕСЛИ мы использовали массив ArrayList или String для непосредственной работы со списком, но почему это имеет значение, если мы используем методы ArrayAdapter.add / insert / remove? Как только ArrayAdapter создан (и из того, что я понимаю из этого файла .java), он превращает исходные данные в объект List, независимо от того, поступают ли они из массива или ArrayList.
Я пытался использовать обычный массив при создании адаптера, и я получил ошибку (как и ожидалось по тексту), но я не понимаю, почему. В чем разница между созданием ArrayAdapter со строковым массивом и ArrayList ... не превратит ли оно его в один и тот же объект List? Есть ли какая-то связь с исходной переменной при попытке добавить / вставить / удалить через адаптер?
Извините за длинный вопрос, но заранее спасибо.