[英]ZK Event listener not removed from any component using removeEventListener
我在从选项卡和工具栏按钮删除事件侦听器时遇到问题。
我已经在工具栏按钮上添加了一个事件监听器,然后做了一些保存后,我无法删除监听器。
exitButton
是一个工具toolbarbutton
。
两种方法都在同一类中。 但是第一个Time exitButton
在onClick
事件上有一些不同的逻辑,但是当我保存数据并通过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");
}
});
}
保存后如何删除事件监听器?
请记住,您的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");
}
这将删除EventListener,并在成功时显示消息。
您的问题是您创建了一个新对象,因此它不等于旧对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.