您的位置:首页 > 移动开发 > Android开发

Android-密码的明文显示与隐藏

2014-07-25 20:19 204 查看
经常看到在很多登陆或者需要输入密码的界面都有一个CheckBox,名为显示密码。用户输入的密码默认都是隐藏的,即都是以黑点或者星号代替,当勾选显示密码之后,用户输入的密码就会显示出来,成为可见状态。实现方法很简单,现在我们来看一下这种效果的实现方法。

首先需要在布局文件里面放入一个文本控件TextView,用于提示用户输入密码。还有一个编辑框和选择框,即EditText和CheckBox。如下
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:orientation="vertical">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="请输入你的密码:" />

<EditText
android:id="@+id/psw"
android:layout_width="181dp"
android:layout_height="wrap_content"
android:password="true" />

<CheckBox
android:id="@+id/check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="显示密码"/>

</LinearLayout>

之后就是到java文件中进行实现了。不多说,代码:
public class MainActivity extends Activity {
private EditText psw = null;
private CheckBox check = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
psw = (EditText) findViewById(R.id.psw);//取得EditText组件
check = (CheckBox) findViewById(R.id.check);//取得CheckBox组件
check.setOnClickListener(new CheckOnClickListener());
}

private class CheckOnClickListener implements OnClickListener {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (check.isChecked()) {  //当CheckBox被选中
psw.setTransformationMethod(HideReturnsTransformationMethod
.getInstance());  //密码以明文显示
} else {
psw.setTransformationMethod(PasswordTransformationMethod
.getInstance());  //以密文显示,以.代替
}
}
}
}


效果如下,正是预料之中的效果:





通过效果可以发现,密码默认输入是以密文形式,当勾选显示密码后,密码就显示出来了。如果是先勾选显示密码,再输入密码,效果也是一样的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: