Android 使用AutoCompleteTextView,但隐藏键盘上的字符
我使用的是AutoCompleteTextView,用户可以看到机会。 因此,当我点击两个字符,例如巴,我会看到巴哈马,巴林,阿塞拜疆等-这工作 但是如果我没有以字母z开头的国家,我会在键盘上隐藏z。如果我点击两个字符ba,我只会在键盘上看到h。 我该怎么做?如果我还想攻打巴哈马和阿塞拜疆,我怎么能实现呢Android 使用AutoCompleteTextView,但隐藏键盘上的字符,android,autocomplete,keyboard,keyboard-events,autocompletetextview,Android,Autocomplete,Keyboard,Keyboard Events,Autocompletetextview,我使用的是AutoCompleteTextView,用户可以看到机会。 因此,当我点击两个字符,例如巴,我会看到巴哈马,巴林,阿塞拜疆等-这工作 但是如果我没有以字母z开头的国家,我会在键盘上隐藏z。如果我点击两个字符ba,我只会在键盘上看到h。 我该怎么做?如果我还想攻打巴哈马和阿塞拜疆,我怎么能实现呢 谢谢大家 正如Cata所指出的,除非你自己编写键盘,否则你将无法隐藏软键盘上的键-不过你还有几个其他选择: 你可以在编辑文本的页面上放置一个文本观察者,如果他们键入的关键字不在任何单词中,你可
谢谢大家 正如Cata所指出的,除非你自己编写键盘,否则你将无法隐藏软键盘上的键-不过你还有几个其他选择: 你可以在编辑文本的页面上放置一个文本观察者,如果他们键入的关键字不在任何单词中,你可以将其删除 您可以使用setKeyListener来检查和验证它们的条目 这两种方法都不会在键盘上隐藏键,但您可以使用它们来防止用户键入无效键 关于将用户输入匹配到字符串中间的第二个问题,这不在自动完成的代码中: 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;
}
}
}
}
您可以看到,它将只匹配项目中任何单个单词的前几个字符。因此,为了实现第二个目标,您必须编写自己的适配器来实现filterable
这里有一个教程可以让你开始学习:我认为只有你自己制作软键盘并为其制作这样的方法,你才能做到这一点……仍然有一个问题。。。我想使用setkeylistener如何从edittext中找到我的输入?