Custom ArrayAdapter
Използване на персонализиран ArrayAdapter
За показването на поредица от елементи в списък, използвайки персонализирано представяне на елементите чрез клас, трябва да се използва и индовидуално решение за XML оформление за всеки елемент. За да направим това, трябва да създадем свой собствен персонализиран ArrayAdapter клас.
Задача:
Да се създаде приложение извеждащо списък
от потребители с името и града в който живеят.Kлас за данни
Всеки ред в ListView ще съдържа име на човек и град. А всеки град ще съдържа име на град и пощенски код, така че класът ще изглежда:
public class City {
private String name;
private int PostCode;
public City(String name, int postCode) {
this.name = name;
PostCode = postCode;
}
public String getName() {
return name;
}
public int getPostCode() {
return PostCode;
}
}Генератор на данни
Създаване на шаблон за оформление на ListView (layout)
Създава се с десен бутон върху папката layout -> new -> XML -> layout XML file
файла ще се казва: user_item.xml, защото ще съдържа визуалното описние на един ред от ListView. Root Tag ще е: LinearLayout - този таг оказва, че всички визуални елементи в него ще се подреждат в линия
От палитрата с ресурси изберете три TexView и ги провлачете върху изгледа, който създадохте.
Реализация на Adapter
Aдаптера, тряба да опише процеса на преобразуване на Java обекта в изглед това става в метода getView.
Този адаптер има конструктор и getView() метод, за описване на преобразуването на елемента с данни в изглед за показване.
getView() е методът, който връща действителния изглед, използван като ред в ListView на определена позиция.
getItem() вече присъства в ArrayAdapter класа и неговата задача е просто да върне елемент от данни, от съответната позиция в колекцията с данни, който е свързан с този ArrayAdapter.
Прикачване на адаптера към ListView
За да покажем масив от елементи в ListView трябва да се дефинира UserAdapter в MainActivity:
Last updated
Was this helpful?

