Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何禁用删除Android键盘上的按键_Java_Android_Android Softkeyboard - Fatal编程技术网

Java 如何禁用删除Android键盘上的按键

Java 如何禁用删除Android键盘上的按键,java,android,android-softkeyboard,Java,Android,Android Softkeyboard,希望禁用android键盘上的.、?、1、2等 我在想,如果输入了密钥,请运行一个方法将其从转换为。比如说 或者直接禁止他们进入 我该怎么做?你不能像那样禁用软键盘上的键。。。最接近这个功能的是为EditText指定inputType,但很明显,这只适用于数字之类的东西,而对于您提到的特定自定义键集,您不能这样做 而是查看InputFilter,如下所述: 特别是第二个答案,根据您的要求修改了if语句: new InputFilter() { @Override public CharSequ

希望禁用android键盘上的.、?、1、2等

我在想,如果输入了密钥,请运行一个方法将其从转换为。比如说

或者直接禁止他们进入


我该怎么做?

你不能像那样禁用软键盘上的键。。。最接近这个功能的是为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();
    }
}
}

你的用例是什么?有几个已经存在的输入过滤器,例如电话号码,可以防止字母。它们忽略了某些键的输入,但不能禁用键盘上的键本身。