Ich bin ziemlich neu in RxJava, RxAndroid. Ich habe zwei editText
eins für Passwort und eins für Passwortbestätigung. Grundsätzlich muss ich überprüfen, ob die beiden Strings übereinstimmen. Ist es möglich, dies mit Observables
zu tun? Würde ein Beispiel wirklich schätzen, also kann ich es begreifen. Prost.Android Formular Validierung mit reaktiven Programmierung
1
A
Antwort
0
Zunächst erstellen Observable
aus Ihrem EditText
. Sie können RxBinding
Bibliothek verwenden oder Wrapper selbst schreiben.
Observable<CharSequence> passwordObservable =
RxTextView.textChanges(passwordEditText);
Observable<CharSequence> confirmPasswordObservable =
RxTextView.textChanges(confirmPasswordEditText);
Dann Ihre Streams verschmelzen und Werte mit combineLatest
Betreiber bestätigen:
Observable.combineLatest(passwordObservable, confirmPasswordObservable,
new BiFunction<CharSequence, CharSequence, Boolean>() {
@Override
public Boolean apply(CharSequence c1, CharSequence c2) throws Exception {
String password = c1.toString;
String confirmPassword = c2.toString;
// isEmpty checks needed because RxBindings textChanges Observable
// emits initial value on subscribe
return !password.iEmpty() && !confirmPassword.isEmpty()
&& password.equals(confirmPassword);
}
})
.subscribe(new Consumer<Boolean>() {
@Override
public void accept(Boolean fieldsMatch) throws Exception {
// here is your validation boolean!
// for example you can show/hide confirm button
if(fieldsMatch) showConfirmButton();
else hideCOnfirmButton();
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
// always declare this error handling callback,
// otherwise in case of onError emission your app will crash
// with OnErrorNotImplementedException
throwable.printStackTrace();
}
});
subscribe
Methode gibt Disposable
Objekt. Sie müssen disposable.dispose()
in Ihrem Callback anrufen (oder OnDestroyView
, wenn Sie innerhalb Fragment
sind), um Speicherlecks zu vermeiden.
P.S. Der Beispielcode verwendet RxJava2
0
Sie können this Bibliothek verwenden, um so etwas zu tun.
Observable
.combineLatest(RxTextView.textChanges(passwordView1),
RxTextView.textChanges(passwordView2),
(password1, password2) -> checkPasswords))
.filter(aBoolean -> aBoolean)
.subscribe(aBoolean -> Log.d(passwords match))
Verwandte Themen
- 1. Android Formular Validierung UI Bibliothek
- 2. Async Formular Validierung mit Debounce?
- 3. Jquery Validierung - mit Formular-Tag
- 4. Sicherung Formular Validierung mit Ajax
- 5. Formular mit Zufallszahl als Validierung
- 6. Validierung Formular mit Laravel Rahmen
- 7. PHP-Formular-Validierung mit Javascript
- 8. Formular Fehler Validierung mit Alarm
- 9. Benutzerdefinierte Formular-Layout-Validierung
- 10. Django Javascript Formular Validierung
- 11. Laravel Formular Anfrage Validierung
- 12. VB Formular Validierung Problem
- 13. Was ist der Status der funktionalen reaktiven Programmierung in Python?
- 14. Problem beim Registrieren von Kontorl mit Formular in reaktiven Kurvenformen
- 15. Wie Radio-Button-Wert mit reaktiven Formular festlegen?
- 16. JavaScript Validierung Formular Fehlermeldung
- 17. Array [] Formular Validierung
- 18. Bootstrap & Formular Validierung
- 19. Formular Validierung Leiden
- 20. Bootstrap 4 Formular-Validierung
- 21. Wie mehrere Anfragen mit reaktiven android und nachrüsten
- 22. PHP Formular Inline-Validierung
- 23. Formular Anfrage Validierung JSON
- 24. Javascript Formular Validierung
- 25. Formular Feld Validierung Problem
- 26. HTML/PHP-Formular-Validierung
- 27. Angularjs Formular-Validierung
- 28. Admin Formular Validierung
- 29. Jquery Formular Validierung
- 30. XML Formular Validierung?
Was ist Ihre allgemeine Vorgehensweise? Möchten Sie auf Änderungen in den Bearbeitungstexten reaktiv reagieren oder auf die Validierungsergebnisse reagieren? –