我有一个应用程序2个视图和2个演示者。我有一个固定的顶部菜单,带有一个使用SuggestionBox的搜索框。我从数据库中得到建议列表,然后使用addAll(..)方法将它加载到SuggestionBox的MultiWordSuggestOracle中。GWT:SuggestionBox作为一个全局变量
我使用UiBinder的,这是我的代码:
@UiField (provided=true) SuggestBox searchEntriesSuggestBox;
MultiWordSuggestOracle oracle;
public MenuBar() {
oracle = new MultiWordSuggestOracle();
searchEntriesSuggestBox = new SuggestBox(oracle);
initWidget(uiBinder.createAndBindUi(this));
}
public void loadUserEntries(Collection<String> entries){
oracle.clear();
oracle.addAll(entries);
}
的我第一次运行应用程序时,我使用loadUserEntries加载建议()。问题是当我更改View(和Presenter)时,因为SuggestBox加载了一个空的MultiWordSuggestOracle,所以每次更换Presenter时都必须重新加载这些建议。
我想在应用程序的整个生命周期中将建议(MultiWordSuggestOracle)作为全局变量来维护,以避免使用loadUserEntries方法。
我试着定义一个全局变量MultiWordSuggestOracle,每次我必须加载Presenter,用我的全局MultiWordSuggestOracle创建一个新的SuggestBox。但它没有奏效。
有什么想法?
谢谢。
谢谢。这对我帮助很大。我添加了一个全局变量来第一次加载SuggestBox。 –