RxJava-两个可观测值
我有两个观察值——OnPeriodChanged和OnFilterChanged,并试图找出当其中一个发生变化时如何调用视图适配器的函数。我尝试了.zip,但由于某些原因,它没有被触发:RxJava-两个可观测值,java,android,rx-java2,Java,Android,Rx Java2,我有两个观察值——OnPeriodChanged和OnFilterChanged,并试图找出当其中一个发生变化时如何调用视图适配器的函数。我尝试了.zip,但由于某些原因,它没有被触发: Observable.zip(OnPeriodChanged, OnFilterChanged, (Date, Filter) -> HistoryViewModel.getScans(Date.first, Date.second, Filter)).subscribe(scans -> hist
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
。您可以使用combinelatetest
而不是zip
试着把它改成
Observable.combineLatest(OnPeriodChanged, OnFilterChanged, (Date, Filter) -> HistoryViewModel.getScans(Date.first, Date.second, Filter))
.subscribe(scans -> histAdapter.setScans(scans));
是的,这就是我最后必须做的;虽然我在设置了可观测对象之后,在这两个可观测对象上尝试了startWith和onNext,但CombineTest成功了。