ArrayList元素修改时的Fire事件

use*_*757 2 events android

我正在开发一个包含通用对象的ArrayList的Android类.每当修改所述ArrayList的元素时,我希望在此类中触发一个事件.

在一个理想的世界中,ArrayList本身应该是一个私有成员,并且该类将包含添加/更新/删除元素的公共方法,一切都会很好和花花公子.

不幸的是,ArrayList作为公共成员公开,因此它及其元素在整个地方(应用程序)被修改.如果没有重写代码的船载和/或在代码中进行疯狂追逐,我希望我能找到在包含列表的类中修改ArrayList时触发事件的方法.有任何想法吗?

Ale*_*lov 5

您可以在调用其中某些方法之后继承ArrayList并触发操作(例如,调用回调).

然后用您的实现替换Android类中的原始ArrayList.

PS示例:

public class MyArrayList<E> extends ArrayList<E> {

@Override
public boolean add(E object) {
    // Do some action here
    return super.add(object);
};

@Override
public void add(int index, E object) {
    super.add(index, object);
    // Do some action here
};

@Override
public E remove(int index) {
    // Do some action here
    return super.remove(index);
}
// etc...
Run Code Online (Sandbox Code Playgroud)

}

由于它是ArrayList的子类,因此您的代码中不会出现任何错误,而之前运行的所有错误都可以在不进行任何更改的情况下运行.通过一点创造力,课程可以变得更优雅和高效,但总体思路就在那里.

编辑:是的.对不起,这些回报有点仓促.修好了,谢谢Petar