Урок 9. Android Data Binding с событиями пользовательского интерфейса и наблюдаемыми данными

Автор Ruslana Chernenko
Урок 9.  Android Data Binding с событиями пользовательского интерфейса и наблюдаемыми данными

Приветствую всех на startandroid здесь.

Виталий непочатов — это девятый урок по разработке Android приложений на языке kotlin и мы продолжаем изучать Android databinding из компонентов архитектуры. На прошлом уроке мы просто отобрази ли статичные данные пользователя, но возможности библиотеки. Бенин гораздо шире в этом уроке мы рассмотрим обработку пользовательских событий и работу с наблюдаемыми данными observable Data при изменении которых будет меняться их представление в работе.

Мы будем использовать проекты из прошлого урока скачать его можно в текстовой версии урока на нашем сайте инфо ссылка в описании изменим макет разметки главного экрана во-первых заменим переменные для в моду таким образом код представления и состояние будет содержаться в одном месте вместо прямого доступа к переменным мы будем вызывать свой отдал теперь изменим выражение макета в обоих текстовых полях вместо имени переменной name в поле Play прописываем свойства View Model Name Of текстовом поле Play Last name прописываем viewmodel классный также мы будем реагировать на нажатие на кнопку лайков.

Найдите кнопку лайк батон и. Замените вызов метода онлайн таким кодом attribute onclick который мы заменили использовался небезопасный механизм при котором метод онлайн в активити или фрагменте вызывается при по представлению если указать ошибочное имя метода та среда разработки не заметить ошибку, но приложение вылетят новый способ намного безопаснее поскольку он проверяет во время компиляции использует лямбда-выражение для вызова метода онлайн модели представления теперь проверим наличие ошибок привязки данных нажав Make Project Menu Android Studio. Вы видите, что в процессе сборки проекта появятся ошибки которые будут показаны в журнале сборки. Клик на ошибки приведет нас в mainactivity где идет обращение к несуществующему переменным макета. Давайте удалим из проекта то, что нам уже не нужно заменим строки binding name и Last name No binding viewmodel и при своём поле объект в моду повторная команда создания проекта должна выполняться успешно также. Удалите метод онлайн mainactivity так больше не нужен если мы запустим приложение то. Увидим, что кнопка ничего не делает. Это потому, что мы больше не вызываем апдейт лайк давайте реализуем — это правильно. Мы создали статическую привязку на предыдущем шаге. Если вы откроете Model Class Simple viewmodel обнаружите, что переменная волнам его Last name — это строковые переменные. Паскаль кухни нужно менять. Однако количество лайков сохраняется переменной warlight так как должно изменяться в ответ на действия пользователя вместо явного пользовательского интерфейса при изменении этого значения мы сделаем его наблюдаемым обзора был таким образом при изменении наблюдаемого значения элементы пользовательского интерфейса будут автоматически есть несколько способов реализации наблюдаемости. Вы можете использовать наблюдаемое классы наблюдаемое поля или предпочтительно ли в полную документацию по этому вопросу можно найти по ссылке в текстовой версии урока на сайте Android инфо более подробно на практике. Мы работаем с архитектурными компонентами livedata Android databinding в новом продвинутом курсы по разработке приложения чат мессенджер подробнее о курсе смотреть нашем сайте по Android инфо ссылка в описании на этом уроке мы рассмотрим наблюдаемые поля обзора в Battlefield поскольку они проще мы используем класс mutablelivedata которая является расширением livedata и может быть использовано для тех случаев когда мы не хотим помещать логику обновления значение value Data лишь хотим использовать его как также. Перепишите методы онлайн и популярити функция онлайн увеличивает значение likes на единицу, а функция популярити немного интереснее она будет менять иконку в зависимости от количества лайков в — это реализуем нас уроки, а пока давайте рассмотрим саму функцию как вы можете видеть значение. Лев дата должно быть установлено с помощью с дверью и мы можем сделать одну livedata зависимые от другой используя transformations этот механизм позволяет библиотеке обновлять пользовательский интерфейс при изменении значения ребята поддерживает событие жизненного цикла. Поэтому нам нужно указать какой Life cycle of использовать мы делаем. Это в объекте привязки мы inactivity. Установите веб-сайт блондинка. Джек удалите из mainactivity все приватные методы их вызовы теперь код в Activity будет максимально простым удаление лишнего кода языка отлично способствует удобству сопровождение и тестирование. Давайте свяжем textview показывающее количество лайков с наблюдаемым значением interlocks главного экрана политег Feelings добавьте attributedtext с таким значением. Запусти приложение сейчас-то количество лайков будет увеличиваться при нажатии. Как и ожидалось давайте подытожим, что мы сделали до сих пор имя и фамилия отображается в виде строки из моделей представления атрибут кнопки on Click привязан к моделей представлен лямбда-выражение количество лайков отображается в модели представления через наблюдаемое значение integer и привязывается к текстовому представлению поэтому она автоматически обновляется при его изменении до сих пор мы использовали такие атрибуты как Android onclick и Android Text. А на следующем уроке мы рассмотрим другие свойства и создадим свою атрибуты, а также используем binding adapter для создания пользовательских атрибутов. Исходный код проекта можно скачать по ссылке в текстовой версии урока на сайте Phone info. А я прощаюсь с вами до следующего урока. Всем добра.

0 комментариев
0

Читайте также