有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在空的autocomple字段中返回arrayList的整值

这是我对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) 个答案

  1. # 1 楼答案

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

  2. # 2 楼答案

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

    因此,我创建:

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

    而且它是有效的:)