如何用虚拟键盘捕捉按键并为Android中的EditText禁用它?

时间:2011-09-20 23:45:54

标签: android keyboard key virtual try-catch

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

谁知道如何解决这个问题?

谢谢..

2 个答案:

答案 0 :(得分:0)

    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(TextWatcher)来记录我为我的Twitter客户端输入EditText的字符数。你可以使用像这样的监听器。您将要覆盖beforeTextChanged或onTextChanged。无论CharSequence输入什么,这些方法都会通过你。您可以检查键入的内容以及它是否无效输入,您可以通过调用setText()并传入迄今为止输入的内容减去无效字符来删除它。

答案 1 :(得分:0)

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

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