1. 程式人生 > >Android EditText 自定義密碼樣式,密碼轉換為*等特殊字元

Android EditText 自定義密碼樣式,密碼轉換為*等特殊字元

import android.text.method.PasswordTransformationMethod;
import android.text.method.TransformationMethod;
//設定密碼轉換
editText.setTransformationMethod(new TransformationMethod() {
    @Override
    public CharSequence getTransformation(CharSequence source, View view) {
        return new PasswordCharSequence(source);
    }

    @Override
    public void onFocusChanged(View view, CharSequence sourceText, boolean focused, int direction, Rect previouslyFocusedRect) {

    }

});
/**
 * 將密碼轉換成*顯示
 * */
private class PasswordCharSequence implements CharSequence {
    private CharSequence mSource;

    public PasswordCharSequence(CharSequence source) {
        mSource = source; // Store char sequence
    }

    public char charAt(int index) {
        //這裡返回的char,就是密碼的樣式,注意,是char型別的
        return '*';
    }

    public int length() {
        return mSource.length();
    }

    public CharSequence subSequence(int start, int end) {
        return mSource.subSequence(start, end); // Return default
    }
}