Java 如果我的arrayList发生了变化,如何倾听?
如果我的ArrayList被更改,如何收听? 例如,如果我的数组有新项或项已被删除。 我使用rxjava2,但我不知道这是否是一个好的过程Java 如果我的arrayList发生了变化,如何倾听?,java,android,rx-java2,Java,Android,Rx Java2,如果我的ArrayList被更改,如何收听? 例如,如果我的数组有新项或项已被删除。 我使用rxjava2,但我不知道这是否是一个好的过程 Observable.fromArray(positionsList()) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Consum
Observable.fromArray(positionsList())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ArrayList<LatLng>>() {
@Override
public void accept(ArrayList<LatLng> list) throws Exception {
if (list.isEmpty()) return;
for (int i = 0; i < list.size(); i++) {
}
}
});
Observable.fromArray(positionsList())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.订阅(新消费者){
@凌驾
public void accept(ArrayList列表)引发异常{
if(list.isEmpty())返回;
对于(int i=0;i
在Android上,您可以使用的实例,并为其提供在每次更改时通知的实现,而不是当前使用的ArrayList
样本
public class MyCallback extends ObservableList.OnListChangedCallback<ObservableList> {
public void onChanged(ObservableList sender) {
Log.i(tag, "list changed");
}
public void onItemRangeChanged(ObservableList sender, int positionStart, int itemCount) {
Log.i(tag, "item range changed");
}
public void onItemRangeInserted(ObservableList sender, int positionStart, int itemCount) {
Log.i(tag, "item range inserted");
}
public void onItemRangeMoved(ObservableList sender, int fromPosition, int toPosition, int itemCount) {
Log.i(tag, "item range moved");
}
public void onItemRangeRemoved(ObservableList sender, int positionStart, int itemCount) {
Log.i(tag, "item range removed");
}
}
ObservableArrayList list = new ObservableArrayList();
list.addOnListChangedCallback(new MyCallback());
...
list.add(element);
公共类MyCallback扩展了ObservableList.OnListChangedCallback{
更改后的公共无效(可观察列表发送方){
Log.i(标签“列表已更改”);
}
已更改的公共无效项(ObservableList发送方、int positionStart、int itemCount){
Log.i(标记“项目范围已更改”);
}
已插入的公共无效项(ObservableList发送方、int positionStart、int itemCount){
Log.i(标签,“插入的项目范围”);
}
public void已移动(ObservableList发送方、int-fromPosition、int-toPosition、int-itemCount){
Log.i(标记“项目范围已移动”);
}
已删除的公用邮件(ObservableList发件人、int positionStart、int itemCount){
Log.i(标签“移除的项目范围”);
}
}
ObservableArrayList=新的ObservableArrayList();
addOnListChangedCallback(新的MyCallback());
...
列表。添加(元素);
你想做什么?如果有人在您创建的ArrayList上调用add(…)
或remove(…)
方法,是否希望收到通知?为什么要通过使用RxJava来实现这一点?请提供更多信息。确切地说,我想通知您是否在我的列表中添加或删除了一项。如果您不介意,如果您能接受我的正确答案,那将是非常棒的。谢谢您的帮助。最后,我创建了我的自定义侦听器