2011-11-28 560 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