Listview в android просте використання

ListView в Android: Просте використання

Мануал написаний під Android 4, Eclipse 3.7, Java 1.6. Джерело можна знайти тут.

Списки - це річ звичайна в сучасних мобільних пристроях. Ми можемо переміщатися по списку і вибирати потрібний нам елемент, щоб відкрити щось. Так і у Андроїда він є.

ListActivity

Ви можете безпосередньо використовувати ListView в своєму проекті, як і будь-який інший компонент інтерфейсу користувача. Якщо основна мета вашої Діяльності це відображення списку, то ви можете розширити клас Activity класом ListActivity, що значно спростить використання ListView.

ListActivity розширює Activity, щоб спростити використання списків. Наприклад, у вас вже буде визначений метод, що обробляє натискання на елемент списку.

ListActivity містить ListAdapter, відповідальний за управління вмістом. Адаптер повинен бути встановлений в методі onCreate () вашої діяльності через метод setListAdapter ().

При натисканні на елемент списку викликається метод onListItemClick (). Цей метод дозволяє отримати доступ до вибраного елементу.

У Андроїд вже є деякі зумовлені шаблони для використання в адаптер, наприклад «android.R.layout.simple_list_item1». Якщо ж ви не хочете використовувати зумовлений шаблон, ваш шаблон повинен мати ідентифікатор "@android: id / list", який буде називатися ListView. наприклад:

Так само ви можете використовувати вид з id "@android: id / empty". Цей вид відображається, коли список порожній.

Що таке Адаптер?

ListView бере вміст для відображення через адаптер. Адаптер розширюється класом BaseAdapter і відповідає за модель даних для списку і за розташування цих даних в його елементах.

У Андроїд є два стандартних адаптера: ArrayAdapter і CursorAdapter. ArrayAdapter управляє даними, заснованими на масивах або списках, в той час, як SimpleCursorAdapter управляє вмістом з бази даних. Так само ви можете розробити свій Адаптер, що розширює ці два класи або ж клас BaseAdapter.

Найважливіший метод Адаптера - getView (). Він викликається для кожного елемента списку, щоб визначити як і які дані повинні в ньому відображатися. getVew () так само містить параметр convertView, який дозволяє використовувати заново вже існуючий елемент списку, який вже не відображається, тому що користувач перегорнув його з видимої частини дисплея. Якщо convertView не порожній, він може бути використаний заново, щоб не вантажити шаблон, що призводить до значного приросту продуктивності, тому що подгрузка XML файлу досить ресурсомісткі.

ListViews і продуктивність

Відображення великої кількості даних на мобільному пристрої має бути реалізовано максимально ефективно. Тому ListView створює образи (віджети) в разі потреби і підкріплює їх до ієрархії видів. Стандартний Адаптер ListView видаляє види, наприклад, якщо елемент більше не відображається, він буде стертий і тільки його вміст зміниться. Якщо ви використовуєте свій адаптер, то ви повинні так само передбачити це, щоб уникнути проблем з продуктивністю.

Приклад: Простий ListActivity

Зараз ми створимо максимально простий список. Ми використовуємо стандартний клас Adapter - ArrayAdapter і вид, визначений андроїдом.

Створіть новий проект «de.vogella.android.listactivity» з Діяльністю «MyListActivity». Не змінюйте шаблон main.xml. Створіть наступну Діяльність:


Зауважте, що ми не використовуємо setContentView (). ListActivity використовує шаблон ListView за замовчуванням, якщо інший шаблон не заданий явно.

Listview в android просте використання
При натисканні одного з елементів списку буде виводитися стандартний «Тост» з інформацією який з елементів був обраний.