输入密码或金额的显示和隐藏(续)

昨天写完输入密码或金额的显示和隐藏,发现金额的显示目前一般用星(*)号代替。于是就想看看用星号的方法。由于没写过,从网上看了一下。切换星号主要就是要写一个类。

下面看一下效果图
这里写图片描述
可以看到效果图与上一篇文章相似,只是原点改成了*号。

问题的核心就是怎么改星号的。还是两行代码的问题。
  • 隐藏密码/金额
mPassword.setTransformationMethod(new WordReplaceUtil());//设置显示为*号
  • 显示密码/金额
mPassword.setTransformationMethod(HideReturnsTransformationMethod.getInstance());//显示密码/金额
  • 显示为星号的代码如下(这里声明一下,这个方法是在网上看的)
public class WordReplaceUtil extends ReplacementTransformationMethod {
    String strWord = null;
    @Override
    protected char[] getOriginal() {
        //循环ASCII值 字符串形式累加到String
        for (char i = 0; i < 256; i++) {
            strWord += String.valueOf(i);
        }
        //strWord转换为字符形式的数组
        char[] charOriginal = strWord.toCharArray();
        return charOriginal;
    }

    @Override
    protected char[] getReplacement() {
        char[] charReplacement = new char[255];
        //输入的字符在ASCII范围内,将其转换为*
        for (int i = 0; i < 255; i++) {
            charReplacement[i] = '*';
        }

        return charReplacement;
    }
}
遇到问题:
  • 不过这里有个问题,就是圆点的时候,当我清空内容后,将输入内容默认设置为隐藏。改为星号后,发现如果再这样设置,在显示的时候就无法清空。如果只用在显示金额等不用改变的地方还是没问题的。这里就把默认设置为隐藏给去掉了。如果有哪位大神解决了,还请告知一下解决方法。共同学习~~~:)

Demo下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值