首页 > 解决方案 > 如何使用 RxJava 验证输入?

问题描述

我有以下代码

submitButtonClickObservable
    .withLatestFrom(txtInputChangesObservable)
    .subscribe{  }

它运作良好,但我想在不使用文本输入时处理单击提交按钮并显示验证错误。是否可以只使用 Rx 而不使用变量var text: CharSequence或访问 EditText 值?

withLatestFrom 大理石: http ://rxmarbles.com/#withLatestFrom

标签: androidkotlinrx-java2

解决方案


我的解决方案是添加.mergeWith(Observable.just(""))txtInputChangesObservable. 现在subscribe{ }即使用户没有使用文本输入,也可以阻止按钮单击

@Test
fun textObs(){
    val submitButtonClickObservable = Observable.just(Any(), Any())
    val txtInputChangesObservable = Observable.empty<CharSequence>()
            .mergeWith(Observable.just(""))
    val testObserver = submitButtonClickObservable
            .withLatestFrom(txtInputChangesObservable).test()
    testObserver.assertValueCount(2)
}

推荐阅读