我有一个输入字段,它提供了一个Observable<String>
(每当对输入文本进行更改时发出)和一个提供Observable<Click>
(每发出一次单击都会发出)的按钮。结合两个可观察对象,对其中的一个进行操作
当收到click
时,我想使用最新的String
发射来更新另一个文本字段。
组合这两个观察对象的最好方法是什么? combineLatest
将不起作用,因为每次输入文本更改时我都会收到onNext
。
我有一个输入字段,它提供了一个Observable<String>
(每当对输入文本进行更改时发出)和一个提供Observable<Click>
(每发出一次单击都会发出)的按钮。结合两个可观察对象,对其中的一个进行操作
当收到click
时,我想使用最新的String
发射来更新另一个文本字段。
组合这两个观察对象的最好方法是什么? combineLatest
将不起作用,因为每次输入文本更改时我都会收到onNext
。
WithLatestFrom做我想要的。
用法:
view.sendButtonClick().withLatestFrom(view.inputText(), BiFunction<Click, String, String> { click, text ->
text
}).subscribe {
Log.d("xyz", it) // Logs the inputText string
}
而不是试图去观察文本字段,我只想文本字段本身传递给观察者按钮。然后点击获取其文本的当前值并使用它。 – markspace
@markspace我刚刚也考虑过这个问题,但为了教育目的寻找答案。 – FWeigl