Data Binding

Data Binding используется в качестве замены метода View.findViewById(). Своего написанного кода становится меньше, а читаемость улучшается. Больше не нужно писать такой код как:

Вместо этого сгенерируется класс по имени layout-файла:

И в нём уже будут все Button, TextView, ImageView и прочие View.

Для начала указываем что будем использовать Data Binding:

Открываем activity_main.xml и заменяем на:

В MainActivity.java удаляем

Вместо этого должно быть так:

ВАЖНО: Если не прописать атрибут android:id, то в binding такого объекта не будет.

Запускаем проект, если всё работает значит идём дальше.

 

Используем тэг <data> в layout-файле

Создаем новый класс User:

В activity_main.xml:

А в MainActivity.java заменяем код на:

Запускаем. При нажатии на кнопку текст меняется на «onClickListener».

Заменяем ObservableField<String> на простой String. Запускаем. После выполнения метода setUser()  значение «test_username» будет отображено в TextView. Но после нажатия на кнопку значение «onClickListener» отображено не будет. Просто ObservableField знает о View и передает ему значение. Так же есть классы ObservableBoolean,  ObservableInt и другие, с помощью которых можно, например, менять visibility View.

 

Избавляемся от View.OnClickListener

Добавляем в класс User.java переменную и метод:

А в activity_main.xml:

Запускаем. При нажатии будет увеличиваться кол-во лайков.

 

Ещё

Можно так же передать Button в метод:

 

Запускаем и при нажатии на кнопку видим, что в кнопке меняется текст на «Liked!».

Так же можно передавать другие свои классы(или String, Integer, Boolean и пр.). Нужно всего лишь добавить в тэг <data>, например вот так:

А дальше создаём новый метод и передаем ему messages.

 

Добавляем свои шрифты

Подготовка:

  1. Создаём папку assets(\app\src\main\assets\): меню File — New — Folder — Assets Folder
  2. Добавляем папку fonts(\app\src\main\assets\fonts\)
  3. Добавляем шрифты, например NotoSans-Regular.ttf

Создаем новый класс TextUtils:

Итоговый activity_main.xml:

App.get() это:

 

Меняем видимость

Используем:

 

Показываем цену товара

Указываем цену:

 

Передаём Объект в <include>

Создаем классы автомобиль и двигатель:

Указываем автомобиль:

И наконец указываем разметку:

 

 

Ссылки:

  1. Data Binding
  2. View
  3. BindingAdapter

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

www.000webhost.com