我正在开发一个包含通用对象的ArrayList的Android类.每当修改所述ArrayList的元素时,我希望在此类中触发一个事件.
在一个理想的世界中,ArrayList本身应该是一个私有成员,并且该类将包含添加/更新/删除元素的公共方法,一切都会很好和花花公子.
不幸的是,ArrayList作为公共成员公开,因此它及其元素在整个地方(应用程序)被修改.如果没有重写代码的船载和/或在代码中进行疯狂追逐,我希望我能找到在包含列表的类中修改ArrayList时触发事件的方法.有任何想法吗?
您可以在调用其中某些方法之后继承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
| 归档时间: |
|
| 查看次数: |
1818 次 |
| 最近记录: |