Почему список предложений не заполняется для поля предложений в 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());
Другие вопросы по тегам