我正在使用AutoCompleteTextView,用户可以看到机会。 所以当我点击两个字符时,例如“ba”我会看到“巴哈马”,“巴林”,“阿塞拜疆”等 - 这都有效!
但如果我没有以字母“z”开头的国家,我会隐藏键盘上的z。如果我点击两个字符“ba”,我只会在键盘上看到“h”。 我怎样才能做到这一点?如果我仍想点击“ba”并获得“巴哈马”和“阿塞拜疆”,我怎么才能意识到呢?
谢谢大家!
答案 0 :(得分:0)
正如Cata指出的那样,除非你自己编写键盘,否则你将无法隐藏软键盘上的键 - 但是你确实有其他选择:
你可以在编辑文本上放置一个文本观察器,如果他们输入了键,他们输入的不是任何单词,你可以删除它
您可以使用setKeyListener http://developer.android.com/reference/android/widget/TextView.html#setKeyListener%28android.text.method.KeyListener%29来验证他们的参赛作品。
这两个都不会隐藏键盘上的键,但您可以使用它们来阻止用户键入无效键。
关于将用户输入与字符串中间匹配的第二个问题,这不在自动完成的代码中:
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/