使用Google API中的数据在文本字段中自动建议

时间:2019-05-31 18:51:50

标签: java javafx fxml gluon-mobile

我想创建一个自动填充文本字段,其中包含来自Google API的数据的建议-在每次按下新键后都会更新。 现在,我有一种方法可以下载5条建议并在按下另一个键时更新它们。

我已经尝试过Gluon的AutoCompleteTextField,但是效果不佳。

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;
        });
    }
}

在这里,我尝试在"New yo"阶段添加5条建议,但在每个新键之后都没有更新,但是它也不起作用,因为它没有显示任何内容。 "test"未打印在控制台中。

1 个答案:

答案 0 :(得分:0)

在我看来,您需要使用称为setCompleter()的方法来调用initialize()

public class Controller {

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

另请参阅: