Лекция 4. Адаптеры данных и компоненты для отображения данных


После этого добавим в каталог, где находятся классы MainActivity и State, новый класс, который назовем StateAdapter


Download 0.59 Mb.
bet5/12
Sana03.02.2023
Hajmi0.59 Mb.
#1151455
TuriЛекция
1   2   3   4   5   6   7   8   9   ...   12
Bog'liq
Лекция 14 1 Адаптеры данных и компоненты для отображения данных

После этого добавим в каталог, где находятся классы MainActivity и State, новый класс, который назовем StateAdapter:

  • После этого добавим в каталог, где находятся классы MainActivity и State, новый класс, который назовем StateAdapter:

public class StateAdapter extends ArrayAdapter {
 
private LayoutInflater inflater;
private int layout;
private List states;

public StateAdapter(Context context, int resource, List states) {
super(context, resource, states);
this.states = states;
this.layout = resource;
this.inflater = LayoutInflater.from(context);
}
public View getView(int position, View convertView, ViewGroup parent) {
 
View view=inflater.inflate(this.layout, parent, false);
 
ImageView flagView = (ImageView) view.findViewById(R.id.flag);
TextView nameView = (TextView) view.findViewById(R.id.name);
TextView capitalView = (TextView) view.findViewById(R.id.capital);
 
State state = states.get(position);
 
flagView.setImageResource(state.getFlagResource());
nameView.setText(state.getName());
capitalView.setText(state.getCapital());
 
return view;
}
}

LayoutInflater – это класс, который умеет из содержимого layout-файла создать View-элемент. Метод который это делает называется inflate. Есть несколько реализаций этого метода с различными параметрами. Но все они используют друг друга и результат их выполнения один – View.

  • LayoutInflater – это класс, который умеет из содержимого layout-файла создать View-элемент. Метод который это делает называется inflate. Есть несколько реализаций этого метода с различными параметрами. Но все они используют друг друга и результат их выполнения один – View.
  • Мы рассмотрим эту реализацию – public View inflate (int resource, ViewGroup root, boolean attachToRoot) 
  • Как видим, на вход метод принимает три параметра:
  • resource - ID layout-файла, который будет использован для создания View. Например - R.layout.main root – родительский ViewGroup-элемент для создаваемого View. LayoutParams от этого ViewGroup присваиваются создаваемому View. attachToRoot – присоединять ли создаваемый View к root. Если true, то root становится родителем создаваемого View. Т.е. это равносильно команде root.addView(View). Если false – то создаваемый View просто получает LayoutParams от root, но его дочерним элементом не становится.

Все взаимодействие со списком здесь будет идти через класс StateAdapter. В конструкторе StateAdapter нам надо передать в конструктор базового класса три параметра:
  • контекст, в котором используется класс. В его роли кк правило выступает класс Activity
  • ресурс разметки интерфейса, который будет использоваться для создания одного элемента в ListView
  • набор объектов, которые будут выводиться в ListView

Download 0.59 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   12




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling