8

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!
4

2 に答える 2

22

add...HandlerメソッドはHandlerRegistrationインターフェイスを返します。このインターフェイスにはremoveHandler()メソッドが含まれています。ハンドラーを削除する場合は、返されたインターフェイスを変数に保存し、ハンドラーを削除するときに removeHandler を呼び出します。

HandlerRegistration handler;

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

            }
        });
handler.removeHandler();            
于 2012-04-26T16:20:44.703 に答える
1

これは私にとってはうまくいきました。イベントをバインドすると、ハンドラー登録が取得されます。

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 );
                }
            } );
        }
于 2014-05-20T09:06:55.983 に答える