我想创建一个自动完成文本字段,其中包含建议,其中数据来自 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/