Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自定义editText字段的密码转换方法_Java_Android_Android Custom View - Fatal编程技术网

Java 自定义editText字段的密码转换方法

Java 自定义editText字段的密码转换方法,java,android,android-custom-view,Java,Android,Android Custom View,在我的应用程序中,我有一个用于OTP输入的自定义编辑文本,我想为该视图创建一个转换方法,以便用户可以在一秒钟内看到实际输入,并用一个项目符号替换。就像在本机edittext中输入密码一样 private class PinTransformationMethod extends PasswordTransformationMethod { private char BULLET = '\u2B24'; @Override public Char

在我的应用程序中,我有一个用于OTP输入的自定义编辑文本,我想为该视图创建一个转换方法,以便用户可以在一秒钟内看到实际输入,并用一个项目符号替换。就像在本机edittext中输入密码一样

private class PinTransformationMethod extends PasswordTransformationMethod {

        private char BULLET = '\u2B24';

        @Override
        public CharSequence getTransformation(CharSequence source, View view) {
            return new PasswordCharSequence(source);
        }

        private class PasswordCharSequence implements CharSequence {
            private final CharSequence source;

            public PasswordCharSequence(@NonNull CharSequence source) {
                this.source = source;
            }

            @Override
            public int length() {
                return source.length();
            }

            @Override
            public char charAt(int index) {
                return BULLET;
            }

            @Override
            public CharSequence subSequence(int start, int end) {
                return new PasswordCharSequence(this.source.subSequence(start, end));
            }
        }

    }

下面是我的转换方法从PasswordTransformation方法扩展而来的。它可以完美地用项目符号替换我的输入,但我无法在几秒钟内显示输入,我如何才能做到这一点?

在运行时更改输入类型不起作用?在运行时更改输入类型这将是一个好主意。问题是我一直听输入,直到输入结束并将otp发送到服务器,没有按钮,因此,运行时检查不会有效。您可以添加一个处理程序,该处理程序将在更改为bulet之前等待几毫秒