我无法从制表符和工具栏按钮中删除事件侦听器。
我在工具栏按钮中添加了一个eventlistener,然后在做了一些保存部分后,我无法删除监听器。
exitButton
是toolbarbutton
。
两种方法属于同一类。但第一次exitButton
在onClick
事件中有一些不同的逻辑,但是当我保存数据并通过disable()
调用globalcommand
方法删除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");
}
});
}
如何在保存后删除事件监听器?
答案 0 :(得分: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");
}
这将删除EventListener,并在成功时显示消息
问题是你创建了一个新对象,所以它不等于旧对象。