Widget.addHandler() на кнопке GWT работает неправильно

Я пытаюсь использовать метод addHandler на кнопку. Ниже приведен мой код:

private void attachClickHandler(Widget widget) {
    ClickHandler clickHandler1;
    ClickHandler clickHandler2;

    clickHandler1 = new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            System.out.println("ClickHandler One");
        }

    };
    clickHandler2 = new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            System.out.println("ClickHandler Two");
        }

    };
    ((Button) widget).addClickHandler(clickHandler1);
    widget.addHandler(clickHandler2, ClickEvent.getType());
}

Если я добавлю оба обработчика, он работает отлично. Но если я пытаюсь добавить только clickHandler2 (с widget.addHandler(...), то обработчик не вызывается.

Не в состоянии понять, почему?

Заранее спасибо.

2 ответа

Решение

Единственное, что нужно, чтобы это работало:

+ Изменить

widget.addHandler(clickHandler2, ClickEvent.getType());

в

widget.addDomHandler(clickHandler2, ClickEvent.getType());

Просто добавь

widget.sinkEvents(Event.ONCLICK);

это регистрирует dom 'click' событие, чтобы вызвать событие

Другие вопросы по тегам