在設定輸入密碼框時,有些時候需要按鈕控制輸入的是“明文”或者“暗文”。
這裡提供一種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>