我需要在一个不断变化的数组(添加元素)上创建一个Observer。
我正在使用Obserable.from(Iterable),但似乎它在创建时就在ArrayList上创建了Observable。
每当ArrayList获取新元素时,我都需要通知Observer并执行Action。
最佳答案
妳去感谢RxJava Google Group上的DávidKarnok
import java.util.ArrayList;
import java.util.List;
import rx.Observable;
import rx.subjects.PublishSubject;
public class ObservableListExample {
public static class ObservableList<T> {
protected final List<T> list;
protected final PublishSubject<T> onAdd;
public ObservableList() {
this.list = new ArrayList<T>();
this.onAdd = PublishSubject.create();
}
public void add(T value) {
list.add(value);
onAdd.onNext(value);
}
public Observable<T> getObservable() {
return onAdd;
}
}
public static void main(String[] args) throws Exception {
ObservableList<Integer> olist = new ObservableList<>();
olist.getObservable().subscribe(System.out::println);
olist.add(1);
Thread.sleep(1000);
olist.add(2);
Thread.sleep(1000);
olist.add(3);
}
}
关于rx-java - 如何在RxJava中的动态列表上创建观察者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28816691/