将edittext密码字符更改为字符串"密码正在输入..."

时间:2017-07-17 15:08:44

标签: java android

我想将密码掩码更改为字符串。我使用了这段代码,但这会将所有字符更改为p或a或s中的一个。

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
    }
  }
}

1 个答案:

答案 0 :(得分:1)

public char charAt(int index) {        }

指定位置(索引)返回一个字符

所以你需要

return chars[index] ;

并且至少应该添加检查索引是否在chars数组边界内。

此外,您只需编写一个开关,它不会为每个函数调用创建内存数组:

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 ' '; 
  }
}