java - RxJava - 两个可观察对象

标签 java android rx-java2

我有两个可观察对象 - OnPeriodChanged 和 OnFilterChanged,并试图弄清楚当其中一个发生变化时如何为 View 适配器调用函数。我试过 .zip,但由于某种原因它没有被触发:

Observable.zip(OnPeriodChanged, OnFilterChanged, (Date, Filter) -> HistoryViewModel.getScans(Date.first, Date.second, Filter)).subscribe(scans -> histAdapter.setScans(scans));

我可以在这里使用什么来调用 getter 函数并将结果传递给 setter?

最佳答案

zip 仅在您的两个可观察对象(OnPeriodChangedOnFilterChanged)发出后才会将项目发送到下游。我认为你正在尝试 每当任何项目更改时调用 HistoryViewModel.getScans,并使用最新的 DateFilter 值。您可以使用 combineLatest 而不是 zip

尝试将其更改为

    Observable.combineLatest(OnPeriodChanged, OnFilterChanged, (Date, Filter) -> HistoryViewModel.getScans(Date.first, Date.second, Filter))
            .subscribe(scans -> histAdapter.setScans(scans));

关于java - RxJava - 两个可观察对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55666205/

相关文章:

java - 用于查找字符串第一次出现的后缀的正则表达式

java - EditText 问题中的整数

java - 试图让我的 ListView 多选,但我无法让它工作

android - 如何使用 Room Db 返回 Rx Single 交易?

java - 是否有一个java库相当于unix中的文件命令

java - Apache Derby 中找不到数据库错误

java - 如何从 webelement 获取文本

Android:使用搜索 API 做相当于 startActivityForResult

java - 生成 Observable 发出的值

java - 如何摆脱嵌套的 RxJava 流?