我有一个界面如下:
public interface OnLoadDrawableListener {
public abstract void onGetDrawable();
}
我有一个名为“Content”的类来实现:
private OnLoadDrawableListener dListener = null;
public void setOnLoadDrawableListener(OnLoadDrawableListener nListener) {
dListener = nListener;
}
然后,我想要以下内容:
content.setOnLoadDrawableListener(new OnLoadDrawableListener() {
public void onGetDrawable() {
imageResultItem.setImageDrawable(content.getImageDrawable()) ;
}
});
可以在许多类或对象中实现。我实现了这个,但是监听器只能在最后一个实现中使用
无论如何,谢谢!
答案 0 :(得分:4)
你不能把它改成:
private List<OnLoadDrawableListener> dListeners = new ArrayList<OnLoadDrawableListener>();
public void addOnLoadDrawableListener(OnLoadDrawableListener nListener) {
dListeners.add(nListener);
}
然后在想要通知听众时遍历列表。
答案 1 :(得分:0)
您不需要一组侦听器。只要您创建一个新的侦听器并将其附加到另一个对象,它就应该可以正常工作。
这里的问题是你可能只有一个对象“Content”的实例。每个“内容”实例都会在您的代码中设置自己的侦听器。 为什么在同一个对象中需要多个相同类型的侦听器?