android - 将 RxJava Observable 绑定(bind)到 TextView 的文本属性

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

有没有办法(也许使用 RxBinding)来绑定(bind) Observable<String>TextView对象使其 .text属性与 Observable 保持同步?显然,你可以subscribe()并手动更新文本字段,但似乎有一种方便的方法。我就是找不到它,文档也没有给我任何答案。

RxSwift 中存在类似的便捷方法(或者更确切地说 RxCocoa ),以防澄清我的要求;它叫做.bindTo()那里。

最佳答案

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

参见source code

用法是这样的

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

小心内存并阅读文档:

Warning: The created observable keeps a strong reference to view. Unsubscribe to free this reference.

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

关于android - 将 RxJava Observable 绑定(bind)到 TextView 的文本属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41927476/

相关文章:

rx-java - RxJava 使消费者不安全

kotlin - 使用 RxJava 构建 "task queue"的最佳方式

java - 为什么 'BackgroundFetchHeadlessTask.java' 在 ionic 中不起作用?

java - 发生点击时 RecognizerIntent.ACTION_RECOGNIZE_SPEECH 被阻止

java - Kotlin 中的泛型和抽象类

android - 如何在 Android 上对 RxJava Completable.error 进行单元测试

android - 过滤 rx.Observable 响应到两个不同的订阅者

java - Android 应用程序在后台时如何从 firebase-message 获取数据

java - 将多个 ReactiveX 流合并为一个结果流

rx-java - 我们如何使用 RxJava 进行分页 Web 服务调用,其中每个页面都依赖于前一个页面的响应,而无需递归?