如何捕捉键按下的虚拟键盘和禁用它的EditText在Android



我需要控制按下的按钮,在它们进入我的EditText小部件之前。它应该像过滤器一样工作。例如:我需要用户只能用数字1、2、3、4、5填充EditText,其他符号必须忽略。所以虚拟键盘上的按钮部分应该被禁用,或者我需要捕获最后按下的符号,分析它并禁用EditText。

谁知道解决这个问题的方法?

谢谢. .

    statusEdt.addTextChangedListener(new TextWatcher(){
        public void afterTextChanged(Editable s) {}
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            //do stuff
            charTxt.setText(statusEdt.getText().length() + "/140");
        }
    });

我使用这个TextChangedListener(texttwatcher)来保存为我制作的Twitter客户端在EditText中输入了多少字符的计数。你可能会用到这样的监听器。你会想要重写beforeTextChanged或onTextChanged。这些方法将传递给您已键入的CharSequence。您可以检查输入的内容,如果它不是有效的输入,您可以通过调用setText()并传入到目前为止键入的任何内容(减去无效字符)来删除它。

您可能需要的是InputFilter。例如,只允许数字、符号和小数点:

 editText.setFilters(DigistKeyListener.getInstance(true, true));