標籤:class put 需要 edit close 分享 turn input 實現
很多應用都是顯示與隱藏密碼的功能。
之前的項目都沒這個功能要求,也沒有專門研究這個。最近項目有加這個功能,我這裡也剛好整理一下。
我的思路是設定EditText的InputType。代碼如下:
if (mPasswordVisible) { //設定EditText的密碼為可見的 edtPassword.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); } else { //設定密碼為隱藏的 edtPassword.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); }
View Code
運行代碼,可以正常顯示隱藏密碼。
雖然我實現了這個功能,我還是很好奇別人是怎麼實現這個功能的。
上網搜尋一下,發現大部分人是用以下方法:
if (mPasswordVisible) { //設定EditText的密碼為可見的 edtPassword.setTransformationMethod(HideReturnsTransformationMethod.getInstance()); } else { //設定密碼為隱藏的 edtPassword.setTransformationMethod(PasswordTransformationMethod.getInstance()); }
View Code
運行代碼,同樣可以正常顯示隱藏密碼。
以上兩種方法都能實現這個功能,不過第二個方法太陌生了。。。
以上,還有一個問題,切換顯隱後,游標會跳到最前面,為瞭解決這個問題,需要加上以下代碼:
edtPassword.setSelection(edtPassword.getText().length());
View Code
完美解決問題。
Android之密碼的顯示與隱藏