Авто предложение в текстовом поле с данными из Google API - PullRequest
0 голосов
/ 31 мая 2019

Я хочу сделать автозаполнение текстового поля с предложениями, где данные получены из Google API - обновляется после каждого нажатия новой клавиши.На данный момент у меня есть метод, который загружает 5 предложений и обновляет их при нажатии другой клавиши.

Я пробовал AutoCompleteTextField от Gluon, но это не сработало.

public class Controller {
    Weather weather = new Weather();
    GooglePlaces googlePlaces = new GooglePlaces();

    @FXML
    AutoCompleteTextField<String> autoCompleteTextField = new AutoCompleteTextField<>();

    @FXML
    public void setAutoComplete() throws IOException {
        ArrayList<String[]> places = googlePlaces.predictPlaces("New yo");

        autoCompleteTextField.setCompleter(s -> {
            ArrayList<String> autoplaces = new ArrayList<>();
            for (int i = 0; i < places.size(); i++) {
                autoplaces.add(places.get(i)[0]);
            }
            System.out.println("test");
            return autoplaces;
        });
    }
}

Здесь я попытался добавить 5 предложений из фазы "New yo" без обновления после каждого нового ключа, но он также не работал, так как ничего не показывает."test" не печатается в консоли.

1 Ответ

0 голосов
/ 01 июня 2019

Мне кажется, что вам нужно вызвать setCompleter() в методе с именем initialize():

public class Controller {

    @FXML
    public void initialize() {
        autoCompleteTextField.setCompleter(input -> {
            List<String[]> places = googlePlaces.predictPlaces(input);
            // ...
        });
    }
}

Также см .:

...