常用的EditText有许多的输入限制,比如可以限制只能输入数字,只能输入字母等等,很多的APP中会用到输入身份证号的EditText,但是很少有人会对他进行限制输入~因此今天就讲一下,如果限制我的身份证号的输入框,只能输入符合身份证号的输入字符
众所周知身份证号是15或者18位的,纯数字或者纯数字加x(大小写我也不是很清楚,有说是大写,有人说是小写,从我做过的项目中的经验来说,是大写的~因为后台都会强制转换成大写-_- );
因此我们今天就限制他只能输入数字和大小写的x~~~~
EditText有个setKeyListener()的方法,他有好几个重写,今天要用到的是NumberKeyListener,,,,
他有俩必须重写方法:
/**
* 0:无键盘,键盘弹不出来
* 1:英文键盘
* 2:模拟键盘
* 3:数字键盘
*
* @return
*/
@Override
public int getInputType() {
return 3;
}
/**
* 输入限制、字符控制
**/
@Override
protected char[] getAcceptedChars() {
char[] chars = new char[]{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'X', 'x'};
return chars;
}
返回的char数组,就是表示你允许输入的字符啦~~~
至于为什么选择NumberKeyListener,是因为———-我们要输入身份证号,那么开始处于用户方便性考虑,要让他先显示数字键盘吧~之后可以随便切换以输入字母~,so~~~