2017-04-20 85 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."));