我想要一个Android 应用程序上的EditText来限制允许用户输入的字符。
例如,也许我不希望我的用户能够在我的文本框中键入字母“X”。如果他们点击软键盘上的 X 键,输入应该被简单地忽略。
我得到的印象是我可以使用TextWatcher来调节可以在文本框中输入哪些字符,但我不太确定最好的方法。
我想要一个Android 应用程序上的EditText来限制允许用户输入的字符。
例如,也许我不希望我的用户能够在我的文本框中键入字母“X”。如果他们点击软键盘上的 X 键,输入应该被简单地忽略。
我得到的印象是我可以使用TextWatcher来调节可以在文本框中输入哪些字符,但我不太确定最好的方法。
在xml中试试这个EditText
android:digits="abcdef-jklmn"
不要添加您不想让用户输入的字符。
使用这个可能会有所帮助..
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;
}
}
});
尝试:
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;
}