RxJava - две наблюдаемые - PullRequest
1 голос
/ 13 апреля 2019

У меня есть две наблюдаемые - OnPeriodChanged и OnFilterChanged, и я пытаюсь выяснить, как вызвать функцию для адаптера представления при изменении одной из них. Я пробовал .zip, но по какой-то причине он не срабатывает:

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

Что я могу использовать здесь, чтобы вызвать функцию получения и передать результаты от нее установщику?

1 Ответ

1 голос
/ 13 апреля 2019

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