我基本上有一個菜單,您不能單擊標題,但是當您將鼠標懸停在菜單項上時,您可以從下拉列表中選擇元素。每個元素都是g:帶有與它們關聯的UI字段的錨定標記。我期望會發生的事情是,當用戶點擊其中一個下拉元素時,我的用於該字段的uiHandler會觸發。即使在調試開始和中斷點的情況下,它也不會發生。GWT UiHandler for g:錨點不是射擊
下面你會發現代碼中的主要關注領域。我只會在這裏發佈我的gwt import,因爲可以假設其餘的都是正確的,因爲沒有錯誤。
下面是一個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>
然後在這裏去的想法是從我的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;
用戶界面處理
@UiHandler({"juniorHighFall","juniorHighSpring","juniorHighSummer"})
public void handleMenuClick(ClickEvent event)
{
DisplayUtil.displayAlertMessage(event.toString());
}
初始化
@Override
public void initializeBinder()
{
initWidget(ourUiBinder.createAndBindUi(this));
}
現在,UiHandler實際上從未被擊中。我有g:帶有和沒有href的錨定標籤,並且也嘗試過將它們作爲g:超鏈接和g:沒有成功的按鈕。這就好像UiHandler不在那裏。
任何幫助將不勝感激,也如果你覺得你需要任何其他的疑難解答,請讓我知道!
感謝:-)
編輯:
只是爲了確保,這是明確的,即包含在此ui.xml文件模板ui.xml文件是一個div放在這一點。當我用SimplePanel替換它時,所有的工作都與UiHandler一起工作。
感謝您的回覆!
是的,他們是自定義類,我會開始深入研究他們,看看他們是否有什麼奇怪的事情發生。感謝您確保代碼可以正常工作,因爲這將我推上了牆! 我也會給SimplePanel一個鏡頭,看看是否有這個竅門!感謝您的迴應! –
此外,我會upvote這個,但我沒有足夠的聲譽,在這裏還沒有這樣做... (□°□°)╯(┻━┻ –
SimplePanel做到了!在模板xml上包含這個ExtendedHTMLPanel,元素是div,我把div改成了SimplePanels,所有的UiHandlers都能正常工作,但我還沒有足夠的聲望來支持你的答案,但是謝謝你! –