Почему список предложений не заполняется для поля предложений в gwt.?
Я работаю с блоком предложений в GWT, но я застрял с проблемой, в которой offertionBox.showSuggestionList() не показывает никаких результатов через focusHandler.
Я создал предложение оракула и предлагаю Box следующим образом
MultiWordSuggestOracle mySuggestionOracle=new MultiWordSuggestOracle();
SuggestBox mySuggestBox=new SuggestBox(mySuggestionOracle);
затем после того, как я получил значения offertionList, то есть массив предложений откуда-то, я добавляю эти значения к предложению oracle, как
for(String str : suggestionList){
mySuggestionOracle.add(str);
}
Вышеупомянутый код написан в поле зрения, и я добавляю FocusFandler к этому предположению Box в презентере, как,
view.mySuggestBox().getValueBox().addFocusHandler(new FocusHandler() {
@Override
public void onFocus(FocusEvent event) {
view.mySuggestBox().setText(" ");
view.mySuggestBox().showSuggestionList();
}
});
в чем может быть проблема, почему этот showSuggestionList () не показывает никаких предложений, если мы нажимаем в предложить Box.? но если мы введем какой-то текст в offerBox, он покажет правильные предложения, специфичные для ввода. т.е. если мы введем a, то все предложения начнутся с *.
Может кто-нибудь помочь, если был такой же сценарий или какая-то идея, если я где-то ошибаюсь.?
1 ответ
Во-первых, чтобы показать предложения по умолчанию, вы должны установить пустую строку в виде текста в SuggestBox, прежде чем вызывать метод showSuggestionList (я предполагаю, что ни одна строка в SuggestionList не начинается с пробела).
public void onFocus(FocusEvent event) {
view.mySuggestBox().setText("");
view.mySuggestBox().showSuggestionList();
}
В секундах, чтобы отобразить все предложения, вы должны установить их с помощью метода setDefaultSuggestionsFromText объекта MultiWordSuggestOracle.
Пример констант
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());