2017-04-20 80 views
0

我需要在进行其他调用之前验证7个字段。每个验证都是单个可观察的,如果字符串与规则不匹配,则会引发错误。在onError方法中,我管理字段以显示错误消息和该消息的文本。问题在于我不知道如何在zip中以这种方式检查所有字段,例如,当他们中的一些发生错误时,不要停止另一个observable,并且在zip中检查是否至少有一个错误来阻止其余的调用。Android RxJava2多个EditText验证

+0

你可以添加一些代码吗? – GVillani82

+0

不幸的是,没有。我尽可能清楚地描述问题。 – Near1999

回答

0

您可以使用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."));