android密码设成星号,将EditText密码掩码字符更改为星号(*)
Najib Ahmed ..
61
在xml文件中插入edittext,
android:id="@+id/passWordEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:inputType="textPassword"/>
你的类文件继续从edittext获取findViewById并为此实现,
EditText edittext = (EditText)findViewById(R.id.passWordEditText);
edittext.setTransformationMethod(new 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
}
}
};
谢谢,这对我有用.我的情况,我必须隐藏最后10个数字,而不是全部.所以,我只需要覆盖方法charAt(int index),如果index> 9则返回'*',否则返回mSource.charAt(index). (2认同)