![](/img/trans.png)
[英]Android Room database LiveData Response with data from two different tables
[英]How to handle Android LiveData changes from two different ways (Room, user)?
我有一個帶有Room數據庫的Android應用程序,該數據庫使用REST API。 Room充當單一事實來源,即,當API結果保存在Room中時,我正在更新UI。
在我的一個屏幕中,我需要顯示一個過濾列表(具有API的最新更新),例如,按作者過濾的電影列表。
當用戶更改作者過濾器時,需要更新列表,但是,由於API調用(存儲在數據庫中)而導致后端電影更改時,也需要更新列表。
其次,我可以使用通過Room調用創建的LiveData>對象來實現,它將從Room db分派更改。
但是,如何合並同一用戶(通過過濾的電影列表)從用戶(通過切換過濾器)激活的更改?
對於其他任何人,使用MediatorLiveData實際上非常簡單。
val selectedItem = MediatorLiveData<Voyage>()
var voyages: LiveData<Resource<List<Voyage>>>
var voyageFilter = MutableLiveData<VoyageFilter>()
selectedItem.addSource(voyageFilter) { filter ->
//do something
}
selectedItem.addSource(voyages) { listResource ->
//do something
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.