2014-09-12 109 views
1

我遇到一些問題,將SuggestBox添加到我的應用程序。該UiBinder模板的樣子:問題與GWT SuggestBox

... 
<g:FlowPanel> 
    <g:SuggestBox ui:field='actorSuggestBox' styleName='{style.givemespace}' /> 
    <g:Button ui:field="addActorButton">Add Actor</g:Button> 
</g:FlowPanel> 

<g:FlexTable ui:field='actorsTable'></g:FlexTable> 
.... 

,我通過擴展MultiWordSuggestOracle創造我自己的suggestBox。我調試了我的代碼,並確保在我初始化UiBinder之前,定製的SuggestBox類已正確創建並初始化。我的SuggestBox不能正常工作。讓我感到困惑的是,如果我使用setWidget(row, column, widget)將它添加到FlexTable(我必須顯示通過提示框添加的條目),則此組件可以正常工作,所以在初始化UI時可能會丟失一些東西。雖然我有Dewsbury關於GWT應用程序的書,但它不包含UiBinder。我查過的教程和代碼示例使用

<g:SuggestBox ui:field="mySuggestBox"/> 

沒有問題。但是,我不明白我在創建和初始化此組件或導致SuggestBox無法工作的用戶界面時出錯。我不知道如果它超過

actorSuggestBox = new SuggestBox(new CustomSuggestOracle()); 

初始化sugestbox如果有連接/初始化這個組件時,我很想念其他重要概念。

@UiField (provided = true) 
SuggestBox actorSuggestBox = new SuggestBox(new CustomSuggestOracle()); 

你需要調用粘合劑(createAndBindUi)之前初始化這個小部件:如

@UiField 
@Ignore 
SuggestBox actorSuggestBox; 
+0

你如何在你的代碼中聲明actorSuggestBox? – 2014-09-12 19:42:50

+0

@AndreiVolgin,我編輯了這個問題來解決這個問題。我使用Ignore,因爲SuggestBox的文本在我的DTO中沒有任何字段。我讀了一些我不得不使用的tutoriasl(provided = true),但這使我的代碼崩潰了。 – Diego 2014-09-12 19:47:03

回答

1

你必須使用

組件聲明。

+0

謝謝。我想我現在有一個工作版本。 – Diego 2014-09-12 20:56:09