RxJava android:观察动态变化的数组中的每个字符串?

时间:2017-10-26 09:23:52

标签: java android arrays rx-java2

我有这样的事情:

mStringList = new ArrayList<>();
    for (int i = 0; i < 10; i++) {
        mStringList.add(i + "");
        Log.d(TAG, "iterration " + i );
    }

我需要用RxJava观察这个ArrayList。如何创建Observable并订阅它,以便我可以看到添加到ArrayList的每个元素?

我希望在我的控制台中看到类似的内容:

console -> iterration 0;
console -> observer 0;
console -> iterration 1;
console -> observer 1;

谢谢!

2 个答案:

答案 0 :(得分:0)

即使您正在寻找RxJava解决方案,也不需要这样做,因为android提供了自己的方法/类来处理它。

首先是Android-Architecture-Components LiveData

为此,您有ObservableListObservableArrayList

由于您想要侦听更改,因此可以使用新的DiffUtil类,它正是您正在寻找的内容。

如果您仍想使用RXJava,可以使用另一种尝试:

PublishSubject<String> sub = PublishSubject.create();
List<String> list = new ArrayList<>();
public void addDataToList(String str) { 
  list.add(str);  
  sub.onNext(str);
}

最后观察你的主题。

sub.subscribe( next -> { .. }, error -> {  });

答案 1 :(得分:0)

如果我理解正确,你只需要做一个动作:

Checked

多数人。