2013-01-18 21 views
0

我无法从选项卡和toolbarbutton中删除事件侦听器。ZK使用removeEventListener从任何组件中删除事件侦听器

我已经添加一个eventlistener到toolbarbutton,然后做一些保存部分我不能删除监听器。

exitButtontoolbarbutton

这两种方法都属于同一类。但第一次exitButtononClick事件上有一些不同的逻辑,但是当我保存我的数据并通过globalcommand调用disable()方法删除onClick事件侦听器时。

@AfterCompose 
public void afterCompose(@ContextParam(ContextType.VIEW) Component view) { 
    Selectors.wireComponents(view, this, false); 
    exitButton.addEventListener("onClick", new EventListener<Event>() { 

     public void onEvent(Event evt) throws Exception { 
      Messagebox.show("adddingggg"); 
     } 
    }); 
} 

@GlobalCommand 
public void disable() { 
    exitButton.removeEventListener("onClick", new EventListener<Event>() { 

     public void onEvent(Event evt) throws Exception { 
      Messagebox.show("remocvee"); 
     } 
    }); 
} 

如何在保存后删除Event Listener?

+0

请提供您的代码。 –

+0

此问题是[“从选定选项卡删除事件监听器”的精确副本](http://stackoverflow.com/questions/14372849)。 –

回答

1

请记住,你的EventListener实例必须返回true
如果是呼吁前增加听众的Object#equal参数。

EventListener evl; 

@AfterCompose 
public void afterCompose(@ContextParam(ContextType.VIEW) Component view) { 
    Selectors.wireComponents(view, this, false); 
    exitButton.addEventListener("onClick", evl = new EventListener<Event>() { 

     public void onEvent(Event evt) throws Exception { 
      Messagebox.show("adddingggg"); 
     } 
    }); 
} 

@GlobalCommand 
public void disable() { 
    if(exitButton.removeEventListener("onClick", evl)) 
      Messagebox.show("success"); 
} 

这将删除事件监听,并显示消息,如果它是成功的。
你的问题是你创建了一个新的对象,因此它不等于旧的。

+0

更新了我的代码 – psisodia

+0

然后请发布您的所有代码java和zul –

+0

感谢Nabil的帮助!!它为我工作。但是我在删除选定选项卡中的侦听器时遇到了问题。我正在应用相同的逻辑,但不工作。 你能帮我吗? – psisodia