传递给
@UiHandler注释的参数是您要为其分配适当字段的名称
*Handler。因此,在这种情况下,你都分配
ClickHandler到一个
Buttonbutton(实际上,我们只是知道这个字段的名称)。
至于它是如何工作的-这是GWT魔术的一部分:)我的猜测是,就像其他UiBinder相关代码一样(我认为Google
IO上有一个演示文稿,展示了UiBinder生成的代码),在编译时编译器会找出问题所在。在这个例子中:我们有
Buttonbutton,我们有一个
@UiHandler具有注解的方法
ClickEvent参数- >那 一定
意味着它是一个
ClickHandler(注意,这个方法的名字 并不
此事)。因此,让我们在编译时(可能在构造函数中)添加一些代码,以将处理程序添加到按钮。如果您对更全面的答案感兴趣-请查看来源:D
但是,例如,与a
ListBox一起使用时,您可以将其用于什么目的呢?我在文档的哪里可以看到?
在GWT
API参考中。在这种情况下,您可能正在寻找ListBox.addChangeHandler。但是您通常
@UiHandler在那里找不到相关的代码-
那是因为它是多余的-您始终
@UiHandler以相同的方式构造方法:
- 您选中
*Handler
要添加的,说ChangeHandler
- 它具有
void onChange(ChangeEvent event)
-因此,您的方法需要一个ChangeEvent
参数,并且应如下所示:@UiHandler("listBox")void whateverName(ChangeEvent event) {
// …
}



