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

标签 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 个建议,而无需在每个新 key 后进行更新,但它也不起作用,因为它没有显示任何内容。 “test” 未在控制台中打印。

最佳答案

在我看来,您需要在名为 initialize() 的方法中调用 setCompleter():

public class Controller {

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

另请参阅:

关于java - 使用来自 Google API 的数据在文本字段中自动建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56400375/

相关文章:

java - 使用 if 语句比较 String 和 Arrays.asList 值

java FXML 生成的代码

java - 如何有效地比较集合?

java - 用Java处理和显示大量数据

javafx - 如何在javafx中创建动态可调整大小的形状?

java - 使 JavaFX ColorPicker 始终可见

java - Eclipse:类型推断期间为 "Unknown error"

java - hibernate 和 JAXB/JSON(消息模型和数据模型)

Javafx无法加载新添加的图像

java - 如何删除按钮单击 JavaFX 的展开效果?