Android RxJava2 множественная проверка EditText

Мне нужно проверить 7 полей перед вызовом остальных. Каждая проверка является единственной наблюдаемой, которая выдает ошибку, если строка не соответствует правилам. В методе onError мне удается в каком поле отображать сообщение об ошибке и текст этого сообщения. Проблема в том, что я не знаю, как проверить таким образом все поля в zip, например, не останавливая другие observables, когда некоторые из них выдают ошибку, а в zip проверить, была ли хотя бы одна ошибка, чтобы предотвратить вызов rest.


person Near1999    schedule 20.04.2017    source источник
comment
Можете ли вы добавить код?   -  person GVillani82    schedule 20.04.2017
comment
К сожалению нет. Я постараюсь описать проблему как можно яснее.   -  person Near1999    schedule 20.04.2017


Ответы (1)


Вы можете использовать оператор onErrorReturn(), чтобы вернуть определенный элемент, который будет выдан, когда он обнаружит ошибку.

Например, если у нас есть две наблюдаемые, и первая дает сбой, а вторая нет, у вас будет что-то вроде этого, и сообщение журнала будет напечатано.

Observable.zip(Observable.error(new Throwable())
                        .onErrorReturn(throwable -> Result.fail()), 
                Observable.just(new Result("body")),
                (BiFunction<Object, Result, Object>) (o, result) -> result)
                .subscribe(o -> Log.d("test","both observables completed."));
person GVillani82    schedule 20.04.2017