我基本上有一个菜单,您无法单击标题,但当您将鼠标悬停在菜单项上时,您可以从下拉元素中进行选择.每个元素都是g:具有与之关联的ui字段的锚标记.我期望发生的是,当用户点击其中一个下拉元素时,该字段的uiHandler将会触发.即使有调试和断点,它也不会发生.
您将在下面找到代码中主要关注的区域.我只会在这里发布我的gwt导入,因为可以假设其余的都是正确的,因为零错误.
这是一个XML片段,用于了解正在发生的事情
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'
xmlns:cpcw='urn:import:org.collegeboard.pa.gwt.client.widget'>
<cpcw:ExtendedHTMLPanel>
<ul>
<li ui:field="juniorHigh"><g:Anchor href="">Junior High</g:Anchor>
<ul>
<li><g:Anchor href="#" ui:field="juniorHighFall">Fall</g:Anchor></li>
<li><g:Anchor href="#" ui:field="juniorHighSpring">Spring</g:Anchor></li>
<li><g:Anchor href="#" ui:field="juniorHighSummer">Summer</g:Anchor></li>
</ul>
</li>
</ul>
</cpcw:ExtendedHTMLPanel>
</ui:UiBinder>
Run Code Online (Sandbox Code Playgroud)
然后是我的Java类中的部分
进口
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.LIElement;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.ui.Anchor;
Run Code Online (Sandbox Code Playgroud)
Ui Fields
@UiField
protected LIElement juniorHigh;
@UiField
protected Anchor juniorHighFall;
@UiField
protected Anchor juniorHighSpring;
@UiField
protected Anchor juniorHighSummer;
Run Code Online (Sandbox Code Playgroud)
Ui Handler
@UiHandler({"juniorHighFall","juniorHighSpring","juniorHighSummer"})
public void handleMenuClick(ClickEvent event)
{
DisplayUtil.displayAlertMessage(event.toString());
}
Run Code Online (Sandbox Code Playgroud)
初始化
@Override
public void initializeBinder()
{
initWidget(ourUiBinder.createAndBindUi(this));
}
Run Code Online (Sandbox Code Playgroud)
现在,UiHandler实际上从未被击中.我有使用和没有href的g:Anchor标签,并且还尝试了它们作为g:超链接和g:按钮没有成功.就好像UiHandler不在那里.
任何帮助将不胜感激,如果您觉得您需要其他任何疑难解答,请告诉我!
谢谢 :-)
编辑:
为了确保这一点很明确,包含此ui.xml文件的模板ui.xml文件将其放在div中.当我用SimplePanel替换它时,一切都与UiHandler一起使用.
谢谢你的回复!
默认情况下,这样做并且应该正常工作.
我发觉到:
这些似乎是自定义类 - 在这些实现中可能会出现一些时髦的东西?
也许你可以尝试在SimplePanel中包装这些锚点并使用默认的UiBinder,看看是否有效.如果是这样,很可能与您使用的任何自定义控件有关.如果没有,则会发生一些奇怪的事情 - 也许重新启动IDE等.