Android 从小白到大拿之路——登陆密码的明文显示

来源:互联网 发布:c语言int 编辑:程序博客网 时间:2024/04/27 19:54
    在很多输入密码的登陆界面会有一个叫做“密码可见”的东东,这东西是什么呢,且听我慢慢道来!

    此东东(功能)借助于EditText类中的
setTransformationMethod()方法来完成
(此方法的使用就相当于在布局文件中配置的android:password="true"属性)
但是此方法需要传入一个 
android.text.method.TransformationMethod接口的实例化对象
而此时可以使用此接口的两个子类:

1、秘文显示:android.text.method.HideReturnsTransformationMethod

2、明文显示:android.text.method.PasswordTransformationMethod

可直接使用getInstance()方法调用

如:MainActivity.this.myPassWord.setTransformationMethod(1或者2.getInstance())


//完整代码在文档的最后面
//设置CheckBox的按键监听器
this.show.setOnClickListener(new OnClickListenerImpl());
    }
    private class OnClickListenerImpl implements OnClickListener{

@Override
public void onClick(View v) {
if(show.isChecked()){
//密文显示
MainActivity.this.myPassWord.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
}else{
//明文显示
MainActivity.this.myPassWord.setTransformationMethod(PasswordTransformationMethod.getInstance());
}
}
    }

package com.example.demoshowkeyword;import android.app.Activity;import android.os.Bundle;import android.text.method.HideReturnsTransformationMethod;import android.text.method.PasswordTransformationMethod;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.CheckBox;import android.widget.EditText;public class MainActivity extends Activity {private EditText myPassWord = null;private CheckBox show = null;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                this.myPassWord = (EditText) findViewById(R.id.myPassWord);        this.show = (CheckBox) findViewById(R.id.myShow);        this.show.setOnClickListener(new OnClickListenerImpl());    }    private class OnClickListenerImpl implements OnClickListener{@Overridepublic void onClick(View v) {if(show.isChecked()){MainActivity.this.myPassWord.setTransformationMethod(HideReturnsTransformationMethod.getInstance());}else{MainActivity.this.myPassWord.setTransformationMethod(PasswordTransformationMethod.getInstance());}}    }}
在虚拟机上的测试:


0 0