您可以按字符数掩盖EditText值吗?

问题描述

| 我有一个EditText,我想屏蔽字符值但连字符。例如,\“ 11-11 \”最好显示为\“ **-** \”。 我知道如果您在EditText配置中定义android:password = \“ true \”,它将屏蔽所有字符(最后输入的值除外)。有没有一种方法可以覆盖该功能以在明文中显示连字符? *编辑-将答案移出了问题...     

解决方法

我想通了,如果将来有人想知道该怎么做。我扩展了PasswordTransformationMethod,并覆盖了getTransformation()。不幸的是,该类的作者没有使它具有一点点可扩展性,因此我最终不得不复制了私有类PasswordCharSequence和Visible的所有代码。 允许使用连字符的实际更改很简单。我更换:
if (!visible) {
    dest[i - start + off] = DOT;
}
与:
if (!visible && dest[i - start + off] != \'-\') {
    dest[i - start + off] = DOT;
}
希望能对某人有所帮助。另外,如果有人找到解决此问题的更干净的方法,我也会很感兴趣。 *编辑-实际上,我只是注意到蒙版不适用于横向方向...当我弄清楚它时,我将对其进行更新。