Tôi đang sử dụng RxJava2, Kotlin-1.1 cùng với RxBindings trong dự án của tôi.Observable.combineLoại suy luận mới nhất trong kotlin
Tôi có màn hình đăng nhập đơn giản với nút 'đăng nhập' bị tắt theo mặc định, tôi chỉ muốn bật nút khi trường tên người dùng và mật khẩu edittext không trống.
LoginActivity.java
Observable<Boolean> isFormEnabled =
Observable.combineLatest(mUserNameObservable, mPasswordObservable,
(userName, password) -> userName.length() > 0 && password.length() > 0)
.distinctUntilChanged();
Tôi không thể dịch mã trên từ Java để Kotlin:
LoginActivity.kt
class LoginActivity : AppCompatActivity() {
val disposable = CompositeDisposable()
private var userNameObservable: Observable<CharSequence>? = null
private var passwordObservable: Observable<CharSequence>? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
initialize()
}
fun initialize() {
userNameObservable = RxTextView.textChanges(username).skip(1)
.debounce(500, TimeUnit.MILLISECONDS)
passwordObservable = RxTextView.textChanges(password).skip(1)
.debounce(500, TimeUnit.MILLISECONDS)
}
private fun setSignInButtonEnableListener() {
val isSignInEnabled: Observable<Boolean> = Observable.combineLatest(userNameObservable,
passwordObservable,
{ u: CharSequence, p: CharSequence -> u.isNotEmpty() && p.isNotEmpty() })
}
}
tôi cho rằng nó là cái gì liên quan đến suy luận kiểu của đối số thứ ba trong combinelatest
, bu t Tôi không nhận được sự cố đúng cách bằng cách đọc thông báo lỗi:
Đã cho tôi con số quá lâu này ra. – Vicky