首页 文章

Android rxKotlin在子目录combineJatest崩溃

提问于
浏览
0

当代码和名称不为空时,我想要 enable/disable 按钮 .

My code:

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

    试试这个

    runOnUiThread(new Runnable() {
            @Override
            public void run() {
                if (btnAddItem.isEnabled != it){
                   btnAddItem.isEnabled = it
                }
            }
    });
    

相关问题