ArrayList元素修改时的Fire事件

时间:2011-02-03 13:49:00

标签: android events

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

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

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

1 个答案:

答案 0 :(得分:5)

在调用其中一些方法之后,您可以继承ArrayList并触发一个动作(例如调用一个回调)。

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

P.S。例如:

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...

}

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

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