【问题标题】:Use AutoCompleteTextView but hide characters on the keyboard使用 AutoCompleteTextView 但在键盘上隐藏字符
【发布时间】:2011-09-03 05:17:01
【问题描述】:

我正在使用用户可以看到机会的 AutoCompleteTextView。 所以当我点击两个字符时,例如“ba”我会看到“Bahamas”、“Bahrain”、“Azerbaijan”等 - 这行得通!

但如果我没有以字母“z”开头的国家/地区,我将隐藏键盘上的 z。如果我点击两个字符“ba”,我只会在键盘上看到“h”。 我怎样才能做到这一点?如果我仍然想点击“ba”并获得“bahamas”和“azerbaijan”,我该如何实现?

谢谢大家!

【问题讨论】:

  • 我认为只有自己制作软键盘并为其制作这样的方法才能做到这一点......

标签: android autocomplete keyboard keyboard-events autocompletetextview


【解决方案1】:

正如 Cata 指出的那样,除非您编写自己的键盘,否则您将无法隐藏软键盘上的按键 - 但是您还有其他几个选项:

这两种方法都不会隐藏键盘上的键,但您可以使用它们来防止用户键入无效键。

关于将用户输入匹配到字符串中间的第二个问题,这不在自动完成的代码中:

相关代码来自android源码:

for (int i = 0; i < count; i++) {
            final T value = values.get(i);
            final String valueText = value.toString().toLowerCase();

            // First match against the whole, non-splitted value
            if (valueText.startsWith(prefixString)) {
                newValues.add(value);
            } else {
                final String[] words = valueText.split(" ");
                final int wordCount = words.length;

                for (int k = 0; k < wordCount; k++) {
                    if (words[k].startsWith(prefixString)) {
                        newValues.add(value);
                        break;
                    }
                }
            }
        }

您可以看到它只会匹配项目中任何单个单词的第一个字符。因此,要实现您的第二个目标,您必须编写自己的实现可过滤的适配器。

这里有一个教程可以帮助你入门:http://thinkandroid.wordpress.com/2010/02/08/writing-your-own-autocompletetextview/

【讨论】:

  • 还是有问题...我想使用 setkeylistener 如何从edittext中找出我的输入?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 2017-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多