Это должен быть принятый ответ :)

ользую RxJava2, Kotlin-1.1 вместе с RxBindings в моем проекте.

У меня простой экран входа в систему с отключенной по умолчанию кнопкой «Войти», я хочу активировать кнопку только в том случае, если поля имени пользователя и пароля edittext не пусты.

LoginActivity.java

Observable<Boolean> isFormEnabled =
    Observable.combineLatest(mUserNameObservable, mPasswordObservable,
        (userName, password) -> userName.length() > 0 && password.length() > 0)
        .distinctUntilChanged();

Я не могу перевести приведенный выше код с 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() })
  }
}

Я предположил, что это связано с выводом типа третьего аргумента вcombinelatest, но я не получаю проблему правильно, прочитав сообщение об ошибке:

Ответы на вопрос(2)

Ваш ответ на вопрос