如何在空自动完成字段中返回arrayList的整个值

时间:2012-06-29 09:56:51

标签: java wicket

这是我对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;
    }
}

所以我希望在字段为空时获取所有值,但此实现不起作用。你能救我吗?

2 个答案:

答案 0 :(得分:1)

代码看起来不错。在检查trim()之前,您可能需要另外isEmpty()字符串,也许周围只有一些杂散空间。 BTW子类化java.util.ArrayList是一个坏主意。您应该设计自己的内部使用List的类。

答案 1 :(得分:0)

是的,我找到了。在AutoCompleteTextField AutoCompleteSetting,其中属性setShowListOnEmptyInput,其默认值为false

所以我创建:

        AutoCompleteSettings settings = new AutoCompleteSettings();
        settings.setShowListOnEmptyInput(true);

它有效:)