HanteIsHante / file

file note
4 stars 0 forks source link

android EditText输入限制,只输入数字电话或者特殊字符 #27

Closed HanteIsHante closed 5 years ago

HanteIsHante commented 6 years ago

EditText提供了一个android:digits配置,它表示EditText能够接受的字符集合。通过配置此属性,就可以实现只允许输入指定的字符。

android:digits="1234567890.+-*/%\n()"

限制输入框中只能输入自己定义的这些字符串 如果输入其它将不予以显示, 可以根据自己想要输入的内容进行限制, 例:

场景一:只允许输入数字 
android:digits="0123456789"
场景二:只允许输入数字和英文字母 
android:digits="0123456789abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
场景三:只允许输入数字,英文字母和@.两个符号 
android:digits="0123456789abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@."

使用android:digits属性有几个需要注意的地方。

  1. android:digits属性是隐藏的,无法直接在EditText的可视化属性列表中找到。只能直接在XML中配置。当在XML中增加了这项配置后,才可以在EditText的可视化属性列表中找到。

  2. android:digits属性中的字符顺序没有影响,例如只允许输入数字时,可以用android:digits="0123456789",也可以用android:digits="9876543210"。

  3. android:digits属性中允许有重复字符,有重复字符在使用效果上没有影响。例如android:digits="aaaAAA"和android:digits="aA"效果是一样的。

  4. android:digits属性只能设置允许输入哪些字符,不能设置禁止输入哪些字符,也就是说android:digits属性只能设置白名单,不能设置黑名单。