代码示例:
下面是一个示例方法,该方法可确保键盘不接受在输入字符串时输入的任何非文本字符。
EditText editText = findViewById(R.id.edit_text);
editText.setKeyListener(new TextKeyListener(TextKeyListener.Capitalize.NONE, false) {
@Override
public boolean onKeyDown(View view, Editable content, int keyCode, KeyEvent event) {
if (keyCode >= KeyEvent.KEYCODE_0 && keyCode <= KeyEvent.KEYCODE_9) {
return super.onKeyDown(view, content, keyCode, event);
} else if (keyCode >= KeyEvent.KEYCODE_A && keyCode <= KeyEvent.KEYCODE_Z) {
return super.onKeyDown(view, content, keyCode, event);
} else {
return true; // 拦截非文本字符
}
}
});
此示例方法通过将键盘的 KeyListener 设置为 TextKeyListener,并覆盖 onKeyDown 方法来确定是否允许输入按键。 当按下数字和字母时,此方法将返回 super.onKeyDown,以使按键显示在 EditText 中。 对于任何其他按键,此方法将返回 true,以拦截非文本字符并确保键盘不接受它们。