2017-09-02 126 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

相关问题