【发布时间】:2011-09-21 23:30:44
【问题描述】:
我基本上有一个菜单,您不能在其中单击标题,但是当您将鼠标悬停在菜单项上时,您可以从下拉元素中进行选择。每个元素都是 g:Anchor 标记,带有与之关联的 ui 字段。我期望发生的是,当用户单击其中一个下拉元素时,该字段的 uiHandler 会触发。即使在调试和断点的情况下,它也永远不会命中。
您将在下面找到代码中的主要关注领域。我只会在这里发布我的 gwt 导入,因为由于零错误,可以假设其余部分是正确的。
这是一个 XML sn-p 来了解发生了什么
<!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>
然后这是我的 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;
UI 字段
@UiField
protected LIElement juniorHigh;
@UiField
protected Anchor juniorHighFall;
@UiField
protected Anchor juniorHighSpring;
@UiField
protected Anchor juniorHighSummer;
UI 处理程序
@UiHandler({"juniorHighFall","juniorHighSpring","juniorHighSummer"})
public void handleMenuClick(ClickEvent event)
{
DisplayUtil.displayAlertMessage(event.toString());
}
初始化
@Override
public void initializeBinder()
{
initWidget(ourUiBinder.createAndBindUi(this));
}
现在,UiHandler 从未真正被击中。我有带和不带href的g:Anchor标签,并且还尝试将它们作为g:Hyperlink和g:Button但没有成功。就好像 UiHandler 根本不存在一样。
我们将不胜感激任何帮助,如果您觉得需要其他任何问题来解决问题,请告诉我!!
谢谢:-)
编辑:
为了确保清楚,包含此 ui.xml 文件的模板 ui.xml 文件将其放置在 div 中。当我用 SimplePanel 替换它时,一切都与 UiHandler 一起工作。
感谢您的回复!
【问题讨论】:
标签: gwt