Exemplo n.º 1
0
 /**
  * {@inheritDoc} {@linkplain com.camnter.robotlegs4android.core.IEventMap #unmapListener} The same
  * as calling <code>removeEventListener</code> directly on the <code>IEventDispatcher</code>, but
  * updates our local list of listeners. 和调用IEventDispatcher里的removeEventListener一样,但是更新我们当地的侦听器列表。
  *
  * @param dispatcher The <code>IEventDispatcher</code>
  * @param type The <code>Event</code> type
  * @param listener The <code>Event</code> handler
  * @param eventClass Optional Event class for a stronger mapping. Defaults to <code>Event</code>.
  *     可选事件类更强的映射。默认值为Event
  * @param useCapture useCapture
  */
 @Override
 public void unmapListener(
     IEventDispatcher dispatcher,
     String type,
     IListener listener,
     Class<?> eventClass,
     Boolean useCapture) {
   if (eventClass == null) {
     eventClass = Event.class;
   }
   Params params;
   int i = this.listeners.size();
   while (i-- != 0) {
     params = (Params) this.listeners.get(i);
     if ((params.dispatcher == dispatcher)
         && params.type.equals(type)
         && (params.listener == listener)
         && (params.useCapture == useCapture)
         && (params.eventClass == eventClass)) {
       dispatcher.removeEventListener(type, params.callback, useCapture);
       this.listeners.remove(i);
       return;
     }
   }
 }
Exemplo n.º 2
0
 /**
  * {@inheritDoc} {@linkplain com.camnter.robotlegs4android.core.IEventMap #unmapListeners} Removes
  * all listeners registered through <code>mapListener</code> 通过mapListener删除所有的侦听器注册
  */
 @Override
 public void unmapListeners() {
   Params params;
   IEventDispatcher dispatcher;
   while ((this.listeners.size() > 0)
       && ((params = (Params) this.listeners.remove(this.listeners.size() - 1)) != null)) {
     dispatcher = params.dispatcher;
     dispatcher.removeEventListener(params.type, params.callback, params.useCapture);
   }
 }