Android键盘字符验证

时间:2012-12-11 07:10:07

标签: android validation keyboard textwatcher

我想在Android应用程序上使用 EditText 来限制允许用户输入哪些字符。

例如,也许我不希望我的用户能够在我的文本框中键入字母“X”。如果他们点击软键盘上的X键,则应该忽略输入。

我得到的印象是我可以使用 TextWatcher 来规范哪些字符可以输入到文本框中,但我不太确定最好的方法。

3 个答案:

答案 0 :(得分:1)

在xml EditText

中尝试此操作
android:digits="abcdef-jklmn"

不要添加您不希望用户输入的字符。

答案 1 :(得分:0)

尝试:

myEditText.addTextChangedListener(new TextWatcher() {
        public void onTextChanged(CharSequence s, int start, int before, int count) {

            s = removeChars(s);

        }

        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            // TODO Auto-generated method stub
        }

        public void afterTextChanged(Editable s) {

            // TODO Auto-generated method stub
        }
    });

 public static String removeChars(String input) {

    String charactersToDelete = "áàäéèëíìïóòöúùuñÁÀÄÉÈËÍÌÏÓÒÖÚÙÜÑçÇQWERTYUIOPÑLKJHGFDSAZXCVBNM";

    String output = input;
    for (int i=0; i<original.length(); i++) {
        output.replaceAll(charactersToDelete.charAt(i)+"", "");
    }
    return output;
}

答案 2 :(得分:0)

使用这个可能有帮助..

 editText.setOnKeyListener(new View.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
    switch(keyCode)
 {
        case KeyEvent.KEYCODE_0:
            //handle code for pressing 0
            break;
        default:
            break;
    }
}

});