删除单击处理程序GWT

删除单击处理程序GWT,gwt,gwt2,Gwt,Gwt2,如何删除GWT中的ClickHandler事件?我为按钮添加了addClickHandler()事件,并希望删除ClickHandler事件。我尝试了HandlerRegistration方法,但未能删除该处理程序,以下是一个片段: notification.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { // T

如何删除GWT中的ClickHandler事件?我为按钮添加了addClickHandler()事件,并希望删除ClickHandler事件。我尝试了HandlerRegistration方法,但未能删除该处理程序,以下是一个片段:

notification.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            // TODO Auto-generated method stub
        }

    });  
我想删除带有通知的处理程序

Note:
Notification is the button instance that calls the handler!

每个
add…Handler
方法返回
HandlerRegistration
接口。此接口包含
removeHandler()
方法。如果要删除处理程序,只需将返回的接口存储在变量中,并在要删除处理程序时调用removeHandler

HandlerRegistration handler;

handler = button.addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                // ...

            }
        });
handler.removeHandler();            

这对我很有效,我在绑定事件时获得了处理程序注册

closeIconHandlerRegistration = closeImg.addClickHandler( new ClickHandler()
        {
            @Override
            public void onClick( ClickEvent event )
            {
                addCloseClickHanlder();
            }
        } );
之后,当我需要删除处理程序时

if ( this.getCloseButtonHandlerRegistration() != null )
        {
            this.getCloseButtonHandlerRegistration().removeHandler();
            this.getCloseImg().addClickHandler( new ClickHandler()
            {

                @Override
                public void onClick( ClickEvent event )
                {
                    SaveCancelCommissionChangeEvent saveEvt = new SaveCancelCommissionChangeEvent();
                    saveEvt.setSave( false );
                    tabEventBus.fireEvent( saveEvt );
                }
            } );
        }

您所说的
它失败
删除带有通知的处理程序是什么意思?fails指的是HandlerEvent未被删除,我提到的通知是调用处理程序的按钮实例!我可以稍后删除处理程序对象吗?谢谢