2

我的标题可能有点模糊,但我想让我的建议框在我在文本框中输入字母时建议这样的词:

在建议框中输入的字母:A

羊驼_

一个苹果

不像这样:

在建议框中输入的字母:A

一只可爱羊驼

一个苹果 _ _

A rgon a ttire

有没有办法让建议框表现得像这样?我只想要与字母匹配的第一个单词,不包括带有多个单词的字符串。

顺便说一下,我在 Eclipse 中使用 GWT。

编辑:我不擅长格式化,这些话是

羊驼

苹果

氩气


羊驼急性

苹果负离子

氩气服装

再次编辑:我希望它们看起来像这样:

条目:执行

建议:

执行

执行

执行者

条目:执行 t

建议:

执行时间处理时间

执行定时器

执行标题

基本上我希望它像谷歌搜索一样工作,只要我没有输入第二个单词,就不会出现多字建议。

4

1 回答 1

2

扩展 SuggestOracle 是要走的路!请检查下面的代码...一旦您的实现正确,请将您的 oracle 的新实例传递给您的 SuggestBox。

s.startsWith(userInput)回答您的核心需求。但是你当然可以写其他条件。

   public class MySuggestOracle extends SuggestOracle {

        private List<String> data;

        public MySuggestOracle(List<String> data) {
            this.data = data;
        }

        @Override
        public void requestSuggestions(final Request request, final Callback callback) {
            String userInput = request.getQuery();
            List<Suggestion> suggestions = new LinkedList<Suggestion>();
            for (final String s : data) {
                if (s.startsWith(userInput)) {
                    suggestions.add(new Suggestion() {
                        @Override
                        public String getReplacementString() {
                            return s;
                        }

                        @Override
                        public String getDisplayString() {
                            return s;
                        }
                    });
                }
            }
            Response response = new Response(suggestions);
            callback.onSuggestionsReady(request, response);
        }
    }
于 2013-10-30T08:18:14.787 回答