如何使用@UiHandler和自定义处理程序(传递构造函数args)

时间:2013-01-04 02:46:58

标签: java gwt uibinder

通常,我们这样做:

@UiHandler("aLink")
void onClickALink(ClickEvent e) {
    // do something
}

但是,如果我想使用自己的Handler实现怎么办?

class MyClickHandler implements ClickHandler {
    int i;

    MyClickHandler(int i) {
        this.i = i;
    }

    @Override
    public void onClick(ClickEvent event) {
        // do something
    }
}

然后,如何将MyClickHandler与@UiHandler一起使用?即将i传递给构造函数?

1 个答案:

答案 0 :(得分:1)

您还需要创建特定的点击事件:

class MyClickHandler implements ClickHandler {
    int i;

    MyClickHandler(int i) {
        this.i = i;
    }

    @Override
    public void onClick(MyClickEvent event) {  // MyClickEvent!
        // do something
    }
}

然后你可以这样做:

@UiHandler("aLink")
void onClickALink(MyClickEvent e) {
    // do something
}

确保您在MyClickEvent中实施所有必需的方法,以便GWT能够理解它与MyClickHandler相关联:请参阅ClickEvent dispatch(), getAssociatedType() and getType()

有关示例,请参阅CustomEvent中如何实施HandlerDemo.java

  

然后,如何将MyClickHandler与@UiHandler一起使用?即将i传递给构造函数?

你没有。