Course Content
-
Сохраняем данные в Room + ViewModel
- Коротко об Android Architecture Components и Room
- Создание проекта и добавление необходимых зависимостей
- Создание Entity
- Создание DAO
- Знакомство с LiveData
- Создание базы данных Room
- Знакомство с патерном Repository (Репозиторий) и создание слоя для доступа к данным
- Создание ViewModel
- Создание ячейки списка для отображения UI
- Создание адаптера и добавление RecyclerView
- Добавление записи в БД используя Room
- Создание Activity
- Подключение к базе данных Room
- Итоги
Знакомство с LiveData
Обычно, когда меняются данные, нужно обновить состояние и графического интерфейса, который отображал данные. Это значит, что необходимо подписаться на обновления данных, чтобы реагировать на обновления соответствующе. Это может быть сложной задачей, однако теперь с помощью LiveData это стало проще простого.
LiveData – это компонент, умеющий обрабатывать методы жизненного цикла и входящий в так называемую lifecycle library. Достаточно использовать класс LiveData
в качестве возвращаемого значения в описании модели и Room сгенерирует весь необходимый код для обновления модели, когда данные в таблице базы данных изменятся. Если необходимо обновлять данные нужно использовать MutableLiveData
вместо LiveData.
КлассMutableLiveData
имеет два публичных метода, позволяющих обновлять значения объекта: setValue(T)
и postValue(T)
Обновите WordDao
изменив возвращаемое значение метода getAlphabetizedWords()
как показано ниже:
@Query("SELECT * from word_table ORDER BY word ASC") fun getAlphabetizedWords(): LiveData<List<Word>>
Позже мы добавим Observer
в MainActivity
для отслеживания изменений