1. 程式人生 > >Android EditText自定義密文符號

Android EditText自定義密文符號

某些場合,可能需要在執行時令某個 TextView (可能是執行時建立的,也可以是寫在 XML 檔案中的)。由於無法通過 XML 檔案指定其為 password 輸入屬性,那麼如何實現這個效果呢?

TextView 有兩個方法:

       setInputType(int)
setTransformationMethod(TransformationMethod)

其中 setInputType 可以更改 TextView 的輸入方式:Contact、Email、Date、Time、Short Message、Normal Text、Password 等。還可以指定各種更正選項,如 單詞首字母大寫、句子首字母大寫、自動更正等。

使用方法:

       int inputType = InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT
| InputType.TYPE_TEXT_FLAG_MULTI_LINE | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT
| InputType.TYPE_TEXT_VARIATION_SHORT_MESSAGE;
textView.setInputType(inputType);

而 setTransformationMethod 則可以支援將輸入的字元轉換,包括清除換行符、轉換為掩碼。使用方法:

       textView.setTransformationMethod(PasswordTransformationMethod.getInstance());

綜合來說,如果需要實現自己的轉換,可以通過實現 TransformationMethod 介面來達到你的目的(比如讓輸入的所有字元都變成 a,或者輸入 a 顯示 z,輸入 z 顯示 a 等)。