如何删除已添加到Label的clickHandler?

时间:2012-06-15 09:28:11

标签: java gwt click handler

我正在使用GWT / JAVA进行开发。我有以下问题: 我想从Label中删除ClickHandler,我已将其添加到Label中。

我尝试过removeClickListener()但它已被弃用,所以我找不到其他解决方案来执行此操作。

如果有人找到解决方案,请告诉我。

3 个答案:

答案 0 :(得分:7)

我不知道GWT,但这是你可以做的(来自API)。

HandlerRegistration reg = label.addClickHandler(clickHandler);

reg.removeHandler();

答案 1 :(得分:6)

你使用的是错误的方法。正确的是。

com.google.gwt.user.client.ui.Label.addClickHandler(ClickHandler)

在此方法调用中,返回了HandlerRegistration的实例。

有一种方法
com.google.gwt.event.shared.HandlerRegistration.removeHandler()

答案 2 :(得分:-1)

addClickHandler(new ...)(以及其他所有“添加...处理程序(”)返回HandlerRegistration接口。

您必须注册此处理程序。 因此,您可以随时删除clickHandler。

    HandlerRegistration handler = null;

    private void updateMyInformationLabel(){
         if(handler != null){ 
              // previous onClickHandler removed
              handler.removeHandler(); 
         }
         // adding a new action on label click 
         handler = myInformationLabel.addClickHandler(new ClickHandler() {
                       @Override
                       public void onClick(ClickEvent event) {
                           // something done once
                       }
                   });        
    }