EditText设置密码输入的一些问题
在用EditText设置密码输入时,如果没有注意的话可能会有一些小细节问题。
- 1、设置inputType。
通常我们直接在xml文件里设置inputType属性:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"/>
- 2、在设置inputType属性后,添加输入限制
在设置inputType属性后,显示的就是密码输入框了,但是这个时候EditText是可以接收中文的,有些密码限定只能使用字母或者数字,这个时候有多种方法,可以调用addTextChangedListener(new TextWatcher())方法给EditText添加一个监听,也可以直接在xml里设置digits属性。
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:digits="01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
这样,EditText就只会接收digits里设定包含的特定字符。但是需要特别注意的是,如果在程序里调用了setInputType()方法的话,xml里设置的digits属性将不再生效。但是我们想要用到digits属性怎么办?这进可以在程序里调用setKeyListener(new DigitsKeyListener(“01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ”))来动态设置。