Android rxKotlin вылетает в комбинате подпискиПоследний - PullRequest
0 голосов
/ 09 декабря 2018

Мне нужна кнопка enable/disable, когда код и имя не пустые.

Мой код:

btnAddItem.isEnabled = false

    val codeIsValid = RxTextView.textChanges(txvCode)
        .debounce(350, TimeUnit.MILLISECONDS)
        .map { code ->
            code.isNotEmpty()
        }

    val nameIsValid = RxTextView.textChanges(edtName)
        .debounce(350, TimeUnit.MILLISECONDS)
        .map { name ->
            name.isNotEmpty()
        }

    disposableEnableButtonSave = Observables.combineLatest(codeIsValid, nameIsValid) 
        { b1, b2 -> b1 && b2 }
        .subscribe {
            if (btnAddItem.isEnabled != it){
                btnAddItem.isEnabled = it //crash here.
            }
        }

Но это ошибка при запуске:

Logcat:

io.reactivex.exceptions.OnErrorNotImplementedException: аниматоры могут запускаться только в потоках Looper
android.util.AndroidRuntimeException: аниматоры могут выполняться толькона Looper потоках

сбой кода - кнопка enable/disable.

btnAddItem.isEnabled = it

1 Ответ

0 голосов
/ 09 декабря 2018

Попробуйте это

runOnUiThread(new Runnable() {
        @Override
        public void run() {
            if (btnAddItem.isEnabled != it){
               btnAddItem.isEnabled = it
            }
        }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...