给另一个方法发出一个RxJava Observable

时间:2015-04-25 12:10:17

标签: java android rx-java

我在Fragment中有一个变量,它在整个Fragment的生命中会多次改变它的值。它是由UI交互触发的,所以我认为使用Observable来保存它可能是一个好主意,而不是将所有要更新的视图作为字段并从设置器中进行UI更改。

该值必须通过另一种方法(基本上是应该在订阅者上调用onNext()的setter)更新,而不是通过Observable本身。有没有办法用RxJava的设计做到这一点?

换句话说,我希望有一个Observable字段,并从类中的另一个方法给它发出新的值(在其订阅者上调用{{1}})。

1 个答案:

答案 0 :(得分:15)

为此目的,

RxJavaSubjects。例如:

private final PublishSubject<String> subject = PublishSubject.create();

public Observable<String> getUiElementAsObservable() {
    return subject;
}

public void updateUiElementValue(final String value) {
    subject.onNext(value);
}