Java 将edittext密码字符更改为字符串";密码正在键入…”;
我想将密码掩码更改为字符串。我使用了这段代码,但这会将所有字符更改为p、a或s中的一个Java 将edittext密码字符更改为字符串";密码正在键入…”;,java,android,Java,Android,我想将密码掩码更改为字符串。我使用了这段代码,但这会将所有字符更改为p、a或s中的一个 public class MyPasswordTransformationMethod extends PasswordTransformationMethod { @Override public CharSequence getTransformation(CharSequence source, View view) { return new PasswordCharSequence(
public class MyPasswordTransformationMethod 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;
}
public char charAt(int index) {
char[] chars= new char[3];
chars[0]='p';
chars[1]='a';
chars[2]='s';
return chars[length()] ;
}
public int length() {
return mSource.length();
}
public CharSequence subSequence(int start, int end) {
return mSource.subSequence(start, end); // Return default
}
}
}
在指定位置(索引)返回一个字符
所以你需要
return chars[index] ;
至少,您应该添加检查索引是否在字符数组边界内
您还可以简单地编写一个开关,它不会为每个函数调用创建内存阵列:
public char charAt(int index) {
switch (index) {
case 0: return 'p';
case 1: return 'a';
case 2: return 's';
case 3: return 's';
...
default: return ' ';
}
}
使用默认值时:返回“.”中断<代码>无法访问的语句发生了哈哈哈,对不起,是我的错,返回后不需要中断
public char charAt(int index) {
switch (index) {
case 0: return 'p';
case 1: return 'a';
case 2: return 's';
case 3: return 's';
...
default: return ' ';
}
}