0
我有这样的代码:如何在Java中删除处理程序列表<Image>?
private HandlerRegistration filterImageHandlerReg=null;
public void resetVariables(){
if(filterImageHandlerReg!=null){
filterImageHandlerReg.removeHandler();
}
}
public void callData(){
resetVariables();
for(int i=0; i<getView().getFilterImageList().size(); i++){
Image filterImage=getView().getFilterImageList().get(i);
filterImageHandlerReg= filterImage.addClickHandler(new ClickHandler(){
@Override
public void onClick(ClickEvent event) {
System.out.println("test");
}
});
}
}
THRE是callData();
一个按钮,当我点击该按钮1时,一切都很好,这意味着点击图片时,它会打印:
test
但是,如果我点击按钮2时&然后在图像上单击仅有1点时,它会打印出
test test
这意味着伊玛ge被添加了多个ClickHandler();
& filterImageHandlerReg.removeHandler();
不起作用。
如何解决这个问题?
您可以替换为环(图片filterImage:getView()getFilterImageList()。) –
是的,但很难看到,和我有需要用到我 – Tum
然后分开算呢。如果你传递了一个链表,你只是写了一个运行在O(n^2)时间的方法。 –