EditText 动态切换密码 更改为"*"

原创 2015年07月07日 15:23:58


if (!b) {
	//系统的PasswordTransformationMethod方法是显示 "·"
	//	edittext.setTransformationMethod(PasswordTransformationMethod.getInstance());
	//自定义AsteriskPasswordTransformationMethod类,显示 "*"
	edittext.setTransformationMethod(new AsteriskPasswordTransformationMethod());
} else {
	edittext.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
}
edittext.postInvalidate();
 //切换后将EditText光标置于末尾
CharSequence charSequence = edittext.getText();
     if (charSequence instanceof Spannable) {
                Spannable spanText = (Spannable) charSequence;
                Selection.setSelection(spanText, charSequence.length());
            }

自定义的 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
    }
}
};


来自stackoverflow 网友的方法,很好用。

http://stackoverflow.com/questions/14051962/change-edittext-password-mask-character-to-asterisk

相关文章推荐

Android文本输入框(EditText)切换密码的显示与隐藏

MainActivity如下: package cc.c; import android.app.Activity; import android.os.Bundle; import androi...
  • lfdfhl
  • lfdfhl
  • 2014年04月11日 10:10
  • 2649

EditText动态管理密码显示与隐藏,明文与星号

这次的功能比较简单,所以就直奔主题吧

EditText自动切换输入

  • 2015年01月04日 10:12
  • 1.96MB
  • 下载

EditText自动切换

  • 2014年12月20日 10:54
  • 1.15MB
  • 下载

4,2011.9.1用户登录,更换,密码更改

main_form中3个按钮, 登录,更换用户,密码更改 登录按钮  与后2个按钮不同时有效 //用户登录 private void login_barButtonItem_...
  • xhloo
  • xhloo
  • 2011年09月01日 13:03
  • 382

redhat5.2 root密码更改

redhat5.2 root密码更改 redhat5.2忘记系统密码,可以按以下步骤更改root密码 一.启动redhat5.2,在3秒内按方向键(↓) 二.进入下面页面后按"E"键 ...

edittext自定义密码输入框

  • 2017年03月18日 16:11
  • 26.46MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:EditText 动态切换密码 更改为"*"
举报原因:
原因补充:

(最多只允许输入30个字)