1. 程式人生 > >EditText設定密碼輸入的小問題

EditText設定密碼輸入的小問題

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”))來動態設定。