为什么建议清单没有填入gwt中的建议箱?

时间:2016-03-16 05:07:31

标签: javascript java gwt suggestbox

我正在使用GWT中的建议框,但我遇到了一个问题,其中suggestionBox.showSuggestionList()没有通过focusHandler显示任何结果。

我已经创建了一个建议oracle和suggestBox如下

MultiWordSuggestOracle mySuggestionOracle=new MultiWordSuggestOracle();
SuggestBox mySuggestBox=new SuggestBox(mySuggestionOracle);

然后,当我得到suggestionList值,即某个地方的建议数组时,我将这些值添加到建议oracle中

for(String str : suggestionList){
    mySuggestionOracle.add(str);
}

上面的代码是在视图中编写的,我将FocusFandler添加到演示者的这个suggestBox中,

view.mySuggestBox().getValueBox().addFocusHandler(new FocusHandler() {
        @Override
        public void onFocus(FocusEvent event) {
            view.mySuggestBox().setText(" ");
            view.mySuggestBox().showSuggestionList();
        }
    });

可能会出现什么问题,如果我们点击suggestBox,这个showSuggestionList()为什么不显示任何建议。但是如果我们在suggestBox中输入一些文本,那么它会显示特定于输入的正确建议。即如果我们输入它,则显示所有建议都以*。

开头

如果我在某个地方出错,可以有人提供帮助吗?

1 个答案:

答案 0 :(得分:1)

首先,为了显示默认建议,您必须在 SuggestBox 将空白字符串设置为文本才能调用showSuggestionList方法(我假设suggestionList中没有字符串从白色空格开始)。

public void onFocus(FocusEvent event) {   
  view.mySuggestBox().setText("");  
  view.mySuggestBox().showSuggestionList(); 
}

秒,要显示所有建议,您必须使用 MultiWordSuggestOracle 对象的 setDefaultSuggestionsFromText 方法进行设置。

常量示例

final static String[] SUGGESTIONS = {"alfred", "alicia", "bernard", "bruno", "bernadette"};
final static List<String> suggestionList = new ArrayList<String>(Arrays.asList(SUGGESTIONS));

您的初始化代码:

for (String str : suggestionList) {
  mySuggestionOracle.add(str);
}
mySuggestionOracle.setDefaultSuggestionsFromText(suggestionList);


mySuggestBox = new SuggestBox(mySuggestionOracle);
mySuggestBox.setLimit(suggestionList.size());