1. 程式人生 > >EditText設定密碼輸入並不回顯

EditText設定密碼輸入並不回顯

設定明文或密碼輸入:

  • 設定輸入明文:
mKey.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
  •  設定輸入密碼:
mKey.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);

 設定密碼輸入模式不回顯:

  • 建立 AsteriskPasswordTransformationMethod :
public class AsteriskPasswordTransformationMethod extends PasswordTransformationMethod {
    @Override
    public CharSequence getTransformation(CharSequence source, View view) {
        return new PasswordCharSequence(source);
    }

    private class PasswordCharSequence implements CharSequence {
        private CharSequence mSource;
        public PasswordCharSequence(CharSequence source) {
            mSource = source; // Store char sequence
        }
        public char charAt(int index) {
            return '•'; // This is the important part
        }
        public int length() {
            return mSource.length(); // Return default
        }
        public CharSequence subSequence(int start, int end) {
            return mSource.subSequence(start, end); // Return default
        }
    }
}
  • 設定:
mKey.setTransformationMethod(new AsteriskPasswordTransformationMethod());
  • 總結:

最近遇到app被檢查安全問題,在輸入密碼時要求不能有回顯,於是經過一番查閱上面的方法完美解決問題。下面再給一個也是可以解決問題的設定

在Activity中設定:

Settings.System.putInt(getContentResolver(),Settings.System.TEXT_SHOW_PASSWORD, 0);

只是好像只能適配安卓6.0以下版本,在安卓6.0以上執行崩潰!