2017-09-02 61 views
0

我有一個輸入字段,它提供了一個Observable<String>(每當對輸入文本進行更改時發出)和一個提供Observable<Click>(每發出一次單擊都會發出)的按鈕。結合兩個可觀察對象,對其中的一個進行操作

當收到click時,我想使用最新的String發射來更新另一個文本字段。

組合這兩個觀察對象的最好方法是什麼? combineLatest將不起作用,因爲每次輸入文本更改時我都會收到onNext

+1

而不是試圖去觀察文本字段,我只想文本字段本身傳遞給觀察者按鈕。然後點擊獲取其文本的當前值並使用它。 – markspace

+0

@markspace我剛剛也考慮過這個問題,但爲了教育目的尋找答案。 – FWeigl

回答

0

WithLatestFrom做我想要的。

用法:

view.sendButtonClick().withLatestFrom(view.inputText(), BiFunction<Click, String, String> { click, text -> 
     text 
    }).subscribe { 

     Log.d("xyz", it) // Logs the inputText string 

    } 
+0

嗡嗡聲...當您收到點擊時,您將根據最新的2個文本更改進行操作。不只是最新的。多數民衆贊成在圖表顯示。我會說這不是你所描述的。 – pedromss

+0

@pedromss不,我會在點擊發送時收到onNext,提供最新的文本輸入。 – FWeigl

相關問題