EditText設定密碼輸入的小問題
阿新 • • 發佈:2019-02-16
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”))來動態設定。