Я использую класс, который расширяет Activity для получения списка из API...
В некоторых приложениях, которые делают в основном то же самое, разработчики расширили ListActivity...
Каковы различия?
Я использую класс, который расширяет Activity для получения списка из API...
В некоторых приложениях, которые делают в основном то же самое, разработчики расширили ListActivity...
Каковы различия?
ListActivity
расширяет функциональность общего android.app.Activity
, предоставляя, если хотите, ряд функций, ориентированных на список. Например, обработка щелчка элемента списка четко содержится в ListActivity onListItemClick(...)
, тогда как если бы вы использовали простой android.app.Activity
, вам нужно было бы реализовать это вручную с помощью OnClickListener
и реализации.
В любом случае, если ваш макет содержит список, используйте ListActivity/ListFragment, поскольку он является полезным расширением. Это не значит, что весь экран должен быть списком, но часть его должна содержать виджет ListView с идентификатором, id="@android:id/list"
.
Javadoc в классе с полезными примерами его использования можно найти здесь.
ListActivities специально разработаны для использования с ListViews. Он предоставляет несколько вспомогательных методов, таких как onListItemClick(), которые упрощают использование ListView в них.
Вы можете делать все, что вы можете сделать в Activity в ListActivity.
Если вы хотите изменить макет ListActivity, вы все еще можете использовать метод setContentView() из Activity. Пока существует ListView с именем @android: id/list где-то в вашем представлении ListActivity все равно будет работать.
Если вы все еще не уверены, всегда можете посмотреть исходный код ListActivity (код Jelly Bean, связанный с кодом ) и убедитесь, что он не делает ничего, кроме вашей жизни, немного легче.
Расширяясь от ListActivity
, вы соглашаетесь с контрактом, что в макете вашей деятельности будет доступен компонент ListView
.
Ваш компонент ListView
должен иметь идентификатор: @android:id/list
Класс ListView предоставляет удобные методы работы и управления ListView
Кроме того, в обычном Activity
вы можете использовать код ниже в onCreate
, чтобы скрыть панель заголовка приложения. Кажется, что вы не можете сделать то же самое в ListActivity
. (усвоил этот трудный путь)
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_list);
// The rest of the content of onCreate