1
我想在用户名和密码足够长时使用RxJava2启用登录按钮,但出现错误。在JDK8上使用RxJava2在Android上启用登录按钮
final Button loginButton = (Button) view.findViewById(R.id.loginbutton);
final TextView usernameField = (TextView) view.findViewById(R.id.username_logindialog);
Observable<Boolean> userNameValid = RxTextView.textChangeEvents(usernameField)
.map(e -> e.text())
.map(inputText -> inputText.length() > 4);
final TextView passwordField = (TextView) view.findViewById(R.id.password_logindialog);
Observable<Boolean> passwordValid = RxTextView.textChangeEvents(passwordField)
.map(e -> e.text())
.map(inputText -> inputText.length() > 7);
Observable<Boolean> registerEnabled =
Observable.combineLatest(userNameValid, passwordValid, (a,b) -> a && b);
registerEnabled.registerObserver(enabled -> loginButton.setEnabled(enabled));
对于这两个部分在那里你看到map(inputText
这样的错误:
并为a && b
误差
还有其他的错误,但我认为,前两个错误是根本原因,但我不明白我在说什么现在使用的不是Observable.combineLatest
。
谢谢。我只需要把rx.Observable.combineLatest和它编译。 –