سؤال

I am trying to use method addHandler on a Button. Following is my code:

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());
}

If I add both handlers, it works perfectly. But if I try to add only clickHandler2 (with widget.addHandler(...), then the handler is not called.

Not able to figure out why?

Thanks in advance.

هل كانت مفيدة؟

المحلول

Only thing needed to get this working was:

Change

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

to

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

نصائح أخرى

Simply add

widget.sinkEvents(Event.ONCLICK);

this registers the dom 'click' event to trigger the event

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top