# Лабораторно упражнение 7

### Aдаптер

Самата дума адаптер говори, че един елемент ще се адаптира към друг. Ако си предсавим, че имаме два елемента от лего:

[![Untitled](https://user-images.githubusercontent.com/10382663/77042607-a6bafc00-69c4-11ea-9d96-46f424c3b98f.png)](https://user-images.githubusercontent.com/10382663/77042607-a6bafc00-69c4-11ea-9d96-46f424c3b98f.png)

Двата елемента са различни и не могат да се свържат директно един с друг. За да се свържат е нужно двата елемента да се **адаптират** един към дръг това може да стане с межиден елемент койще се явява **Адаптер** между двата елемента.

[![Untitle1](https://user-images.githubusercontent.com/10382663/77042872-1a5d0900-69c5-11ea-8842-234d6f643cf7.png)](https://user-images.githubusercontent.com/10382663/77042872-1a5d0900-69c5-11ea-8842-234d6f643cf7.png)

поставяйки адаптера между двата елемента вече те са свързани.

По същия начин не може да се свържи деректно телефона към 220V-та мрежа на домашните контакти и те се нуждаят от зарядно което **адаптира** 220V от мрежата към 5V входно напрежение за телефоните. (зарядното е **АДАПТЕР**)

В програмирането **адаптера** служи за адаптиране на обекти който не модат директно да се свържат.

### Android адаптер

Адаптерът е обект от клас, който имплементира интерфейса **Adapter**. Той действа като връзка между данните и изгледа. Адаптерът отговаря от данните да се генерират обекти за изгледа.

Основни адаптер в Android, използвани за попълване на данни в списъчен изглед.

1. BaseAdapter – Родителски адаптер наследяван от всички адаптери.
2. ArrayAdapter – Подходящ е за използване, когато имаме списък от единични елементи, които се поддържат от масив.
3. Персонализиран (Custom) ArrayAdapter – Използва се когато трябва да покажем персонализиран списък.
4. SimpleAdapter – Подходящ е за преобразуване на статични данни, дефинирани във външен XML файл
5. Персонализиран (Custom) SimpleAdapter – Използва се когато трябва да покажем персонализиран списък до чиито елементи да имаме достъп.

### Компоненти на потребителския интерфейс

Визуалните елементи който използват адаптери за данни са:

* ListView е ViewGroup, който показва списък с вертикално превъртани елементи. Елементите от списъка се вмъкват автоматично в списъка с помощта на **adapter** свързан към източник, като например масив и всеки елемент се преобразува в ред от ListView.
* GridView е ViewGroup, който показва списък с матрично превъртани елементи. Елементите от списъка се вмъкват автоматично в списъка с помощта на **adapter** свързан към източник, като например масив и всеки елемент се преобразува в клетка от GridView.

Тези елемети показват данни от колекции. Като един елемент от списъка се дефинира от Ресурсен XML файл.
