初めてルームとデータのバインディングを実装する。私ViewModel
でデータバインディングライブラリを使用してルームデータベースからLiveDataの変更を観察する方法
:
var numberOfClubs = ObservableInt(0)
private var clubs: LiveData<List<Club>> = clubDao.getAllClubs()
私は、ルームデータベースに挿入するが、KotlinNullPointerException
たびに取得しています後clubs.value
を取得しよう。
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}"
。
ルームデータベースに挿入しても何も返されないため、結果としてnumberOfClubs
を設定することはできません。私はclubs
が変更を追跡すべきだと思った?
は多くのために感謝使用してリストのサイズを観察する必要がありますコメントを追加しました:) –