我有两个可观察对象 - 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
仅在您的两个可观察对象(OnPeriodChanged
、OnFilterChanged
)发出后才会将项目发送到下游。我认为你正在尝试
每当任何项目更改时调用 HistoryViewModel.getScans
,并使用最新的 Date
和 Filter
值。您可以使用 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/