【发布时间】:2018-04-14 08:25:12
【问题描述】:
第一次实现房间和数据绑定。
在我的ViewModel:
var numberOfClubs = ObservableInt(0)
private var clubs: LiveData<List<Club>> = clubDao.getAllClubs()
然后我尝试在插入 Room 数据库后获取 clubs.value,但每次都得到 KotlinNullPointerException。
fun addClubs() {
Observable.fromCallable({
clubDao.insertClubs(listOf(Club(null, "clubName"))
})
.subscribeOn(schedulerFacade.computation)
.subscribe(
{
numberOfClubs.set(clubs.value!!.size) <--- Kotlin NPE
},
{ error ->
logWrapper.e("MainViewModel", error.message!!)
clubError.set(true)
})
}
在我的 XML 中,我调用的是:android:text="@{viewModel.numberOfClubs}"。
由于插入 Room 数据库不会导致返回任何内容,因此我无法将结果设置为 numberOfClubs。我认为clubs 应该跟踪更改?
【问题讨论】:
标签: android mvvm data-binding