Rxjava / rxbinding: how to handle errors on rxview
•
Java
I use RX Java and rxbindings to view in Android Here's an example of what I'm doing
RxView.clicks(btMyButton).flatMap(btn -> { // another observable which can throw onError. return Observable.error(null); }).subscribe(object -> { Log.d("CLICK","button clicked"); },error -> { Log.d("CLICK","ERROR"); });
When I click my button, I use flatmap to return another observable, which is a network call that can return success or error When it returns an error, I process it in the error block But I can't click the button again
How do I handle the error and still click the button again?
Solution
Grey bearded geek is spot To specify one of your options, you can use materialize():
RxView.clicks(btMyButton).flatMap(btn -> { if (ok) return someObservable.materialize(); else return Observable.error(new MyException()).materialize(); }).subscribe(notification -> { if (notification.hasValue()) Log.d("CLICK","button clicked"); else if (notification.isOnError()) Log.d("CLICK","ERROR"); });
By the way, don't pass null to observable error().
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码