昨天写完输入密码或金额的显示和隐藏,发现金额的显示目前一般用星(*)号代替。于是就想看看用星号的方法。由于没写过,从网上看了一下。切换星号主要就是要写一个类。
下面看一下效果图
可以看到效果图与上一篇文章相似,只是原点改成了*号。
问题的核心就是怎么改星号的。还是两行代码的问题。
隐藏密码/金额
1
2
mPassword.setTransformationMethod(new WordReplaceUtil());//设置显示为*号显示密码/金额
1
2
mPassword.setTransformationMethod(HideReturnsTransformationMethod.getInstance());//显示密码/金额显示为星号的代码如下(这里声明一下,这个方法是在网上看的)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class WordReplaceUtil extends ReplacementTransformationMethod {
String strWord = null;
protected char[] getOriginal() {
//循环ASCII值 字符串形式累加到String
for (char i = 0; i < 256; i++) {
strWord += String.valueOf(i);
}
//strWord转换为字符形式的数组
char[] charOriginal = strWord.toCharArray();
return charOriginal;
}
protected char[] getReplacement() {
char[] charReplacement = new char[255];
//输入的字符在ASCII范围内,将其转换为*
for (int i = 0; i < 255; i++) {
charReplacement[i] = '*';
}
return charReplacement;
}
}
遇到问题:
- 不过这里有个问题,就是圆点的时候,当我清空内容后,将输入内容默认设置为隐藏。改为星号后,发现如果再这样设置,在显示的时候就无法清空。如果只用在显示金额等不用改变的地方还是没问题的。这里就把默认设置为隐藏给去掉了。如果有哪位大神解决了,还请告知一下解决方法。共同学习~~~:)
Demo下载