Android RxJava2多个EditText验证

时间:2017-04-20 18:42:46

标签: android rx-java2

我需要在休息之前验证7个字段。每个验证都是单个可观察的,如果字符串与规则不匹配则会抛出错误。在onError方法中,我在whitch字段上管理以显示错误消息和该消息的文本。问题在于我不知道如何在zip中以这种方式检查所有字段,例如,当其中一些抛出错误时不要停止另一个observable,并且在zip检查中是否存在至少一个错误以防止休息调用。

1 个答案:

答案 0 :(得分:0)

您可以使用onErrorReturn()运算符来返回遇到错误时将发出的特定项目。

例如,如果我们有两个observable并且第一个没有,而第二个没有,你会有这样的东西,并且会打印日志消息。

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