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)時間的方法。 –