【发布时间】:2020-05-29 16:23:40
【问题描述】:
我遇到了这样的代码并对此有疑问。 在ViewModel中,变量nights的声明和格式如下:
private val nights = database.getAllNights()
val nightsString = Transformations.map(nights) { nights ->
formatNights(nights, application.resources)
}
getAllNights() 是 Dao 中的一个函数,看起来像这样:
@Query("SELECT * FROM daily_sleep_quality_table ORDER BY nightId DESC")
fun getAllNights(): LiveData<List<SleepNight>>
getAllNights () 在代码中的其他任何地方都没有调用,但令我惊讶的是 LiveData 观察者 没有其他地方,尽管显示的文本会自动更新每次我使用按钮向数据库添加内容时的屏幕:
android:text="@{sleepTrackerViewModel.nightsString}" />
在 Kotlin 和 SQLite 中只需要在 Dao 中返回 Live Data 而您不需要观察者吗?如果你什么时候需要?
【问题讨论】:
标签: sqlite android-studio kotlin android-livedata observers