密码输入框限定英文字符和数字输入

Author Avatar
Zhu Yuexin Aug 11, 2017

通常情况下,密码是不允许使用中文的,一般是用数字或者英文字符作为密码。

  • 如果只是简单的限定为数字的话,可以使用一下属性:
android:inputType="numberPassword"
  • 如果要求只能输入数字或者英文字母的话,可以使用digits属性手动指定只能输入的字符:
android:digits="@string/password_limit"
...
0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM

digits属性可以限制输入的字符,但是不能限制弹出的软键盘类型。EditText提供了一个android:inputType属性来设置输入框的类型,其中几个类型如下:

inputType属性值 含义
number 用来输入数字
textCapCharacters 输入的全部字母大写
textCapWords 输入的每个单词首字母大写
textCapSentences 输入的每个句子首字母大写
textPassword 用来输入密码,所有输入的字符都会变成星号*
numberPassword 用来输入密码,只能输入数字,所有输入的字符都会变成星号
textVisiblePassword 用来输入密码,输入的字符原样显示
textEmailAddress 用来输入Email地址

当inputType属性设置为number或者numberPassword时,输入法开启时会自动切换到数字键盘;当inputType属性设置为以上其他类型时,输入法会自动切换到英文键盘。