我有一個輸入字段,它提供了一個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