【发布时间】:2019-08-25 15:42:14
【问题描述】:
在 Java 中,我们使用 books[0] 访问 Livedata<List<Book>> 书籍的第一个元素,在 Kotlin 中如何做到这一点?
我已经尝试了一切。
//Java 代码
books[0];
//科特林
//books[0] 抛出错误
未解决的参考。由于接收器类型不匹配,以下候选均不适用: @InlineOnly 公共内联运算符 fun Map.get(key: Int): Category?在 kotlin.collections 中定义
【问题讨论】:
-
"在 Java 中,我们使用 books[0] 访问 Livedata
- > 书籍的第一个元素" --
books到底是什么?books是LiveData<List<Book>>吗?books是List<Book>吗?books是别的吗?因为books[0]适用于List<Book>,但不适用于LiveData<List<Book>>。您可能希望编辑您的问题并提供一个更完整的示例来说明您如何声明books以及它的来源。 -
如果
books是LiveData<List<Book>>那么你可以使用books.value?.get(0)作为第一个元素。但应观察 LiveData 以books.observe(viewLifecycleOwner, Observer { books -> books[0]})访问数据。
标签: java android kotlin android-livedata android-jetpack