Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RxJava-两个可观测值_Java_Android_Rx Java2 - Fatal编程技术网

RxJava-两个可观测值

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

我有两个观察值——OnPeriodChanged和OnFilterChanged,并试图找出当其中一个发生变化时如何调用视图适配器的函数。我尝试了.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
。您可以使用
combinelatetest
而不是
zip

试着把它改成

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

是的,这就是我最后必须做的;虽然我在设置了可观测对象之后,在这两个可观测对象上尝试了startWith和onNext,但CombineTest成功了。