RxJava-两个可观察的

时间:2019-04-13 13:50:08

标签: java android rx-java2

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

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

在这里我可以用来调用getter函数并将结果从它传递给setter吗?

1 个答案:

答案 0 :(得分:1)

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));