这是我对autocompleteField的实现:
add(new AutoCompleteTextField<String>("hladaneSlovo") {
private static final long serialVersionUID = 1L;
@Override
protected Iterator<String> getChoices(String prefix) {
return hladaneSlova.startsWith(prefix).iterator();
}
});
我的arrayList中的方法startWith看起来像:
public List<String> startsWith(String prefix) {
if (prefix == null || prefix.isEmpty()) {
return this;
} else {
List<String> list = new LinkedList<String>();
for (String s : this) {
if (s.startsWith(prefix)) {
list.add(s);
}
}
return list;
}
}
所以我希望在字段为空时获取所有值,但此实现不起作用。你能救我吗?
答案 0 :(得分:1)
代码看起来不错。在检查trim()
之前,您可能需要另外isEmpty()
字符串,也许周围只有一些杂散空间。 BTW子类化java.util.ArrayList
是一个坏主意。您应该设计自己的内部使用List
的类。
答案 1 :(得分:0)
AutoCompleteTextField
AutoCompleteSetting
,其中属性setShowListOnEmptyInput
,其默认值为false
所以我创建:
AutoCompleteSettings settings = new AutoCompleteSettings();
settings.setShowListOnEmptyInput(true);
它有效:)