Search code examples
androidcomposite

how can I set up multiple listeners for one event?


I want to set up multiple listeners for one event, and have found that using composite listener is the key.

Could anyone give me an example?


Solution

  • class CompositeListener implements OnEventListener {
       private List<OnEventListener> registeredListeners = new ArrayList<OnEventListener>();
    
       public void registerListener (OnEventListener listener) {
          registeredListeners.add(listener);
       }
    
       public void onEvent(Event e) {
          for(OnEventListener listener:registeredListeners) {
             listener.onEvent(e);
          }
       }
    }
    

    .....

    CompositeListener composite = new CompositeListener();
    composite.registerListener(listener1);
    composite.registerListener(listener2);
    component.setOnEventListener(composite);