Java 如何禁用删除Android键盘上的按键
希望禁用android键盘上的.、?、1、2等 我在想,如果输入了密钥,请运行一个方法将其从转换为。比如说 或者直接禁止他们进入Java 如何禁用删除Android键盘上的按键,java,android,android-softkeyboard,Java,Android,Android Softkeyboard,希望禁用android键盘上的.、?、1、2等 我在想,如果输入了密钥,请运行一个方法将其从转换为。比如说 或者直接禁止他们进入 我该怎么做?你不能像那样禁用软键盘上的键。。。最接近这个功能的是为EditText指定inputType,但很明显,这只适用于数字之类的东西,而对于您提到的特定自定义键集,您不能这样做 而是查看InputFilter,如下所述: 特别是第二个答案,根据您的要求修改了if语句: new InputFilter() { @Override public CharSequ
我该怎么做?你不能像那样禁用软键盘上的键。。。最接近这个功能的是为EditText指定inputType,但很明显,这只适用于数字之类的东西,而对于您提到的特定自定义键集,您不能这样做 而是查看InputFilter,如下所述: 特别是第二个答案,根据您的要求修改了if语句:
new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
if (source instanceof SpannableStringBuilder) {
SpannableStringBuilder sourceAsSpannableBuilder = (SpannableStringBuilder)source;
for (int i = end - 1; i >= start; i--) {
char currentChar = source.charAt(i);
if (currChar=='.' || currChar=='?' || Character.isDigit(currChar) && !Character.isSpaceChar(currentChar)) {
sourceAsSpannableBuilder.delete(i, i+1);
}
}
return source;
} else {
StringBuilder filteredStringBuilder = new StringBuilder();
for (int i = start; i < end; i++) {
char currentChar = source.charAt(i);
if (currChar=='.' || currChar=='?' || Character.isDigit(currChar) && !Character.isSpaceChar(currentChar)) {
filteredStringBuilder.append(currentChar);
}
}
return filteredStringBuilder.toString();
}
}
}
你的用例是什么?有几个已经存在的输入过滤器,例如电话号码,可以防止字母。它们忽略了某些键的输入,但不能禁用键盘上的键本身。