2011-11-28 126 views
0

我如何检测新监听器是否已在我的Android应用程序中注册了任何小部件。有没有一个地方可以在听众注册时拦截听众?检测监听器是否已注册

回答

0

我可能会误解,但你可以这样做:

public interface ListenerChangeListener { // Feel free to remove the redundancy :P 
    public void listenerAdded(ListenerChangeEvent e); 
    public void listenerRemoved(ListenerChangeEvent e); 
} 

而且

public class ListenerChangeEvent extends AWTEvent // or other class { 
    // Implementation 
} 

最后,继承自己的自定义部件和修改addXListener()removeXListener()方法,如果要解雇你的自定义事件任何已被添加到组件。然后,按照常规创建“Listener”类,并实现新的Listener接口等。

这有点漫长,我再一次误会了你到底是怎么回事。

0

您可以通过getter方法(例如getActionListeners()AbstractButton)获取对象上侦听器的列表,并检查您添加的侦听器是否在列表中。

+0

这适用于所有小部件还是仅适用于按钮? –

+0

在按钮小部件上,可以调用像getOnFocusChangeListener()或getKeyListener()这样的方法。每个小部件可能都有类似的方法(我没有使用Android SDK)。 – Laf