Патерн viewholder в реалізації списку listview, програмування під android
Патерн ViewHolder. за деякими даними, дозволяє збільшити продуктивність списку ListView на 15-20%, що є дуже актуальним для великих масивів даних. У цій статті ми розглянемо як раз приклад використання цього патерну.

Суть шаблону ViewHolder - це уникнути постійно сканувати елементів в списку при його заповненні за допомогою методу findViewById (). який споживає якраз чимало системних ресурсів. Для цього створюється спеціальний статичний внутрішній клас ViewHolder. який постійно містить посилання на потрібні елементи. Замість того, щоб постійно «смикати» findViewById (). це можна зробити один раз і зберегти посилання в ViewHolder. Розглянемо простий приклад.
Layout для Активити - res / layout / activity_main.xml
Layout для окремого пункту списку res / layout / list_item.xml
Створимо клас адаптера DataAdapter.java (успадковується від BaseAdapter)
Тут ми бачимо внутрішній клас ViewHolder. в якому будемо зберігати посилання на TextView
Як видно з коду, в методі getView (). ми «переіспользуем» старі View, щоб не створювати нові. Це також благотворно впливає на використання ресурсів пам'яті. Якщо немає старого convertView, то ми створюємо і наповнюємо новий. Посилання на TextView ми зберігаємо в ViewHolder:
Зберігаємо і отримуємо доступ до ViewHolder за допомогою методів setTag () і getTag (). При багаторазових зверненнях, по суті, отримавши одне з посилань, ми відразу СЕТТІ текст:
Читайте також:
- SwipeRefreshLayout - приклад використання

- Патерн ViewPager - приклад використання

- Фільтр пошуку і кастомний адаптер для ListView
