利用EditText作為密碼輸入框是個不錯的選擇(只需設置輸入類型為textPassword即可),保密且無需擔心被盜取。但有時用戶也不知道自己輸入的是否正確,這時就應該提供一個“顯示密碼”的復選框,讓用戶控制密碼框的顯示方式,看到自己輸入的密碼,然後必要時再關閉此功能。
本程序就使用了一個CheckBox組件,讓用戶選擇是否顯示明文密碼,程序效果如下圖所示:
Activity程序如下所示:
public class MainActivity extends Activity
{
private EditText password=null;
private CheckBox check=null;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
super.setContentView(R.layout.activity_main);
this.password=(EditText)super.findViewById(R.id.password);
this.check=(CheckBox)super.findViewById(R.id.check);
//為check設置監聽選項,控制密碼框的顯示方式
this.check.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
if(check.isChecked())
{
//設置密碼可見
password.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
}
else
{
//設置密碼隱藏
password.setTransformationMethod(PasswordTransformationMethod.getInstance());
}
}
});
}
}
布局文件如下所示:
<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:orientation="vertical"
tools:context=".MainActivity" >
<EditText
android:id="@+id/password"
android:inputType="textPassword"
android:layout_width="match_parent"
android:layout_height="40sp"
android:hint="請輸入密碼:" />
<CheckBox
android:id="@+id/check"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="顯示密碼" />
</LinearLayout>
更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11