将RxJava Observable绑定到TextView的文本属性

时间:2017-01-30 00:21:16

标签: android rx-java rx-java2 rx-binding

是否有办法(可能使用RxBinding)将Observable<String>绑定到TextView对象,以使其.text属性与Observable保持同步?显然,你可以subscribe()并手动更新文本字段,但似乎很方便。我无法找到它,文档也没有为我提供任何答案。

RxSwift(或更确切地说RxCocoa)中存在类似的便利方法,以便澄清我要求的内容;它在那里被称为.bindTo()

1 个答案:

答案 0 :(得分:3)

是这样的方法在rx-binding库中提供。 例如,TextView RxTextView.text(textView)创建可用作订阅者的操作。

请参阅source code

用法就是这样的

observable.subscribe(RxTextView.text(textView), Throwable::printStackTrace);

小心记忆并阅读文档:

  

警告:创建的observable保留了对视图的强引用。取消订阅以免费提供此参考。

它与bindTo魔法不同,而是做你需要的。