如何在android中使用TransformationMethod

我想创建一个接受密码的EditText.我想在输入字符后立即隐藏字符.所以,我使用了TransformationMethod.
我是新手,所以,我尝试了以下代码.
EditText editText = (EditText) findViewById(R.id.editText);
editText.setTransformationMethod(new PasswordTransformationMethod());


private class PasswordTransformationMethod extends Transformation implements TransformationMethod {

    @Override
    public CharSequence getTransformation(CharSequence source,View view) {
        return "/";
    }

    @Override
    public void onFocusChanged(View view,CharSequence source,boolean focused,int direction,Rect prevIoUslyFocusedRect) {
        source = getTransformation(source,view);
    }
}

然而,它抛出,

01-03 10:22:35.750: E/AndroidRuntime(2102): java.lang.IndexOutOfBoundsException

我错过了什么.任何帮助将不胜感激.

解决方法

上述方法有很多错误.

所以,我正在分享用于将密码转换为点的代码.

在这样的Java文件中创建一个单独的类,

public class MyPasswordTransformationMethod 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; 
        }

        public char charAt(int index) {
            return '.'; 
        }

        public int length() {
            return mSource.length(); 
        }

        public CharSequence subSequence(int start,int end) {
            return mSource.subSequence(start,end); // Return default
        }
    }
};

实现是这样的,

passwordEditText = (EditText) findViewById(R.id.passwordEditText);
passwordEditText.setTransformationMethod(new MyPasswordTransformationMethod());

相关文章

以下为个人理解,如错请评 CE: 凭据加密 (CE) 存储空间, 实际路径/data/user_ce/ DE: 设备加密 (DE) 存...
转载来源:https://blog.csdn.net/yfbdxz/article/details/114702144 用EventLog.writeEvent打的日志(或...
事件分发机制详解 一、基础知识介绍 1、经常用的事件有:MotionEvent.ACTION_DOWN,MotionEvent.ACTION...
又是好久没有写博客了,一直都比较忙,最近终于有时间沉淀和整理一下最近学到和解决的一些问题。 最近进...
Android性能优化——之控件的优化 前面讲了图像的优化,接下来分享一下控件的性能优化,这里主要是面向...
android的开源库是用来在android上显示gif图片的。我在网上查了一下,大家说这个框架写的不错,加载大的...