如何解决有没有一种方法可以将var toyList设计为ViewModel中的LiveData <List <ToyEntry >>?
以下代码来自project。
作者在MainViewModel中将var toyList
设计为LiveData<List<ToyEntry>>?
。
我认为如果将var toyList
设计为LiveData<List<ToyEntry>>
会更好,该怎么办?
class MainViewModel(application: Application) : AndroidViewModel(application) {
var toyList: LiveData<List<ToyEntry>>? = null
get() {
return field ?: mRepo.toyList.also { field = it }
}
...
}
class ToyRepository private constructor(private val mDatabase: ToyDatabase,private val mExecutors: AppExecutors) {
val toyList: LiveData<List<ToyEntry>>
get() = mDatabase.toyDao().allToys
...
}
interface ToyDao {
@get:Query("SELECT * FROM toys")
val allToys: LiveData<List<ToyEntry>>
...
}
解决方法
如果要使用不可为空的LiveData来更改可为空的LiveData,请使用相同的方法观察另一个LiveData,然后可以使用转换:
val toyList: LiveData<List<ToyEntry>> = Transformations.map(mRepo.toyList) {
it
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。