Android-密碼的明文顯示與隱藏
阿新 • • 發佈:2018-12-22
經常看到在很多登陸或者需要輸入密碼的介面都有一個CheckBox,名為顯示密碼。使用者輸入的密碼預設都是隱藏的,即都是以黑點或者星號代替,當勾選顯示密碼之後,使用者輸入的密碼就會顯示出來,成為可見狀態。實現方法很簡單,現在我們來看一下這種效果的實現方法。
首先需要在佈局檔案裡面放入一個文字控制元件TextView,用於提示使用者輸入密碼。還有一個編輯框和選擇框,即EditText和CheckBox。如下
之後就是到java檔案中進行實現了。不多說,程式碼:<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>
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()); //以密文顯示,以.代替 } } } }
效果如下,正是預料之中的效果:
通過效果可以發現,密碼預設輸入是以密文形式,當勾選顯示密碼後,密碼就顯示出來了。如果是先勾選顯示密碼,再輸入密碼,效果也是一樣的。