java - 另一个 LiveData Observer 中的 LiveData Observer
问题描述
我正在我的应用程序中使用一些搜索选项。它包括数据库中的两个连接表。我是新房间,我需要这样的东西:
viewModel.getAllImages().observe(getViewLifecycleOwner(), images -> {
for (Image i : images) {
viewModel.getAllMetadata(i.getId()).observe(getViewLifecycleOwner(), list -> {
for(Metadata m: list){
for (Metadata em : listMetadata) {
if (em.getId() == m.get() && em.getValue().equals(m.getValue())) {
imageList.add(i);
}
}
}
});
}
});
listMetadata是从用户输入中收集的。imageList是存储结果的地方。
单击按钮时调用此方法。它只有在我第二次点击它之后才起作用,但它给了我双重结果。第一次它只是说 imageList 是空的。第二次,有时它是双重填充的,有时只有一次,但它只适用于第二次点击。
我不知道这是否是使用 LiveData 的正确方法,并且我非常感谢如何做到这一点的相同帮助。
提前致谢。
解决方案
推荐阅读
- python - 如何让我的 txt 文件将我想要的每个数字放入行中
- scala - Scala 编译器无法在 Spark lambda 函数中推断类型
- spring - 可以与 ResponseEntity 一起使用的 Spring ResponseBodyAdvice
- csv - 如何在 dask datfarame 中读取 csv.deflate hdfs 文件?
- c - 在 C 编程中不断出现分段错误(核心转储),我正在尝试传递 2d 数组
- html - 元素的行为就像它具有固定的定位一样
- sockets - 来自套接字流的 FMX 位图图像加载失败
- kframework - Haskell 后端是否实现了替换?
- python - 为什么我的 plotly 热图改为呈现折线图?
- cryptography - 对称解密算法如何知道IV?