我有一个包含 2 个视图和 2 个演示者的应用程序。我有一个使用 SuggestionBox 的带有搜索框的固定顶部菜单。我从数据库中获取建议列表,然后使用 addAll(..) 方法将其加载到 SuggestionBox 的 MultiWordSuggestOracle 中。
我正在使用 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() 加载建议。问题是当我更改视图(和演示者)时,因为 SuggestBox 加载了一个空的 MultiWordSuggestOracle,所以每次更改演示者时我都必须再次加载建议。
我想在应用程序的生命周期内将建议(MultiWordSuggestOracle)维护为全局变量,以避免使用 loadUserEntries 方法。
我尝试定义一个全局变量 MultiWordSuggestOracle,每次我必须加载 Presenter 时,使用我的全局 MultiWordSuggestOracle 创建一个新的 SuggestBox。但它没有用。
任何的想法?
谢谢。