在 JavaFX 中,您可以执行以下操作来组合两个可观察的 boolean 值:
BooleanProperty imagesDownloaded = new SimpleBooleanProperty(false);
BooleanProperty animationComplete = new SimpleBooleanProperty(false);
BooleanBinding isValid = imagesDownloaded.and(animationComplete);
我如何使用 RxJava 或 google 的 Databinding API 做同样的事情?
我还想监听 isValid
变量的值变化。
最佳答案
您可以使用 Observable.combineLatest()
, Observable.zip()
, Observable.merge()
, 和其他 operators取决于您的目标。
我将添加一个简短的示例来展示这在 RxJava 中的样子:
PublishSubject<Boolean> property1 = PublishSubject.create();
PublishSubject<Boolean> property2 = PublishSubject.create();
Observable.combineLatest(property1,
property2,
(propertyOneValue, propertyTwoValue) -> propertyOneValue && propertyTwoValue)
.subscribe(isValid -> doWork(isValid));
// sometime later
property1.onNext(true);
property2.onNext(true);
关于java - 使用 ObservableBoolean 或 Observable<Boolean> 组合两个可观察的 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34531387/