0

我有一个如下界面:

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()) ;
            }
        });

可以在许多类或对象中实现。我已经实现了,但监听器只在最后一个实现中工作

总之感谢!

4

2 回答 2

4

你不能把它改成:

private List<OnLoadDrawableListener> dListeners = new ArrayList<OnLoadDrawableListener>();

public void addOnLoadDrawableListener(OnLoadDrawableListener nListener) {
    dListeners.add(nListener);
}

然后在您想要通知您的听众时遍历列表。

于 2012-08-22T21:01:11.030 回答
0

您不需要一组侦听器。只要您创建一个新的侦听器并将其附加到不同的对象,它就应该可以正常工作。

这里的问题是您可能只有一个对象“内容”的实例。正如您在代码中设置的那样,“内容”的每个实例都有自己的侦听器。为什么在同一个对象中需要多个相同类型的侦听器?

于 2012-08-22T21:04:53.397 回答