【Android】实现动态显示隐藏密码输入框的内容

在设置输入密码框时,有些时候需要按钮控制输入的是“明文”或者“暗文”。

这里提供一种Android实现动态显示隐藏密码输入框的内容的方法:

主要是通过设置EditText的setTransformationMethod()方法来实现隐藏密码或者显示密码。


java 文件

package com.app;

import android.os.Bundle;
import android.app.Activity;
import android.text.method.HideReturnsTransformationMethod;
import android.text.method.PasswordTransformationMethod;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
/**
 * Android动态显示隐藏密码输入框的内容
 */
public class MainActivity extends Activity {
	private Button mBtnPassword;  
	private EditText mEtPassword;  
	private boolean mbDisplayFlg = false;  
	   @Override  
	   public void onCreate(Bundle savedInstanceState) {  
	       super.onCreate(savedInstanceState);  
	       setContentView(R.layout.activity_main);  
	       mEtPassword = (EditText)findViewById(R.id.password);  
	       mBtnPassword = (Button)findViewById(R.id.button1);  
	       mBtnPassword.setOnClickListener(new OnClickListener() {  
	        @Override  
	        public void onClick(View v) {  
	            if (!mbDisplayFlg) {  
	                mEtPassword.setTransformationMethod(HideReturnsTransformationMethod.getInstance());  
	            } else {  
	                mEtPassword.setTransformationMethod(PasswordTransformationMethod.getInstance());  
	            }  
	            mbDisplayFlg = !mbDisplayFlg;  
	            mEtPassword.postInvalidate();  
	        }  
	       });  
	   }  
}

布局文件

<RelativeLayout 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" >

    <EditText android:id="@+id/password"  
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"  
        android:password="true"  
        android:textSize="18sp"  
        android:text="123456">  
    </EditText>

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/password"
        android:layout_below="@+id/password"
        android:layout_marginLeft="56dp"
        android:layout_marginTop="48dp"
        android:text="Button" />

</RelativeLayout>


你可能感兴趣的:(android,隐藏,动态,密码)