0

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.
            }
        }

但是运行时出错:

日志猫:

io.reactivex.exceptions.OnErrorNotImplementedException:动画只能在 Looper 线程上运行
android.util.AndroidRuntimeException:动画只能在Looper线程上运行

代码崩溃是enable/disable按钮。

btnAddItem.isEnabled = it
4

1 回答 1

0

试试这个

runOnUiThread(new Runnable() {
        @Override
        public void run() {
            if (btnAddItem.isEnabled != it){
               btnAddItem.isEnabled = it
            }
        }
});
于 2018-12-09T15:26:41.263 回答