我正在将实时数据与 session 室数据库一起使用,我的 Activity 观察到了 session 室数据库提供的实时数据。
@Query("SELECT * FROM BUS WHERE BUS_CATEGORY = :busCategory")
LiveData<List<Bus>> getLiveBuses( String busCategory);
ViewModels通过Dao(数据访问对象)获取LiveData, Activity 观察该实时数据。
现在工作正常。但是,当busCategory更改时,我无法修改此实时数据来获取新选择的busCategory的公交车。
那么如何在查询参数可变的情况下观察相同的liveData?
最佳答案
我建议您使用viewModel。我进行了查询,并使用MutableLiveData观察了更改。
第一步
val mutableBusCategory: MutableLiveData<String> = MutableLiveData()
可变 Activity 数据的二传手
fun searchByCategory(param: String) {
mutableBusCategory.value = param
}
可以观察到变化
val busObservable: LiveData<Bus> = Transformations.switchMap(mutableBusCategory) { param->
repository.getLiveBuses(param)
}
最后一步是观察实时数据
busObservable.observe(this, Observer {
//your logic for list})
并触发mutablelivedata
searchByCategory(//categoryName)
关于android - 如何在Android的 session 室数据库中更改LiveData可观察的查询参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58302768/