Объединение нескольких LiveData в Android
Для того, чтобы объединить несколько LiveData необходимо использовать класс MediatorLiveData. Данный класс умеет подписываться на обновления других LiveData. Для этого необходимо вызвать метод MediatorLiveData.addSource(). Он принимает в себя два аргумента: 1) Сама LiveData, на которую нужно подписаться 2) Observer, который будет вызываться при изменении элемента в этой LiveData.
Вот пример того, как можно объединить две LifeData:
val firstLiveData: LiveData<Any> = MutableLiveData()
val secondLiveData: LiveData<Any> = MutableLiveData()
val mediatorLiveData: MediatorLiveData<Any> = MediatorLiveData();
mediatorLiveData.addSource(firstLiveData) { value -> mediatorLiveData.value = value }
mediatorLiveData.addSource(secondLiveData) { value -> mediatorLiveData.value = value }
В данном случае MediatorLiveData будет вызывать колбэк observe(), каждый раз, когда будут изменяться данные в этих любой из этих двух LifeData.
Как в продуктовой команде
Обучающая платформа AndroidSprint
Kanban-доска, код-ревью и Git Flow. Учитесь работать в процессах, которые используют в продакшене — задачи, как в Jira
- Kanban: доска задач как в Jira — привыкаете к инструментам с первого дня
- Процессы: код-ревью, Git workflow, спринты — как на реальной работе
- Треки: Android, Backend, QA — полный цикл разработки