比較特殊的是這次在 App 上不必檢查密碼內是否含有什麼特殊字元…
Client 一律將用戶輸入的密碼當作字串丟給 Server 檢查…
所以不需用 android:numeric="integer" 之類的方式限定用戶輸入特定區域的字符…
可以亂輸入的情況下更覺得讓用戶看到明碼是必要的貼心服務…
以下範例簡單的示範如何在密碼輸入欄底下加入一個 "顯示密碼" 的 CheckBox
request_pwd_layout.xml
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<EditText android:id="@+id/txt_pwd"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:password="true"
android:text=""/>
<CheckBox android:id="@+id/chk_showpwd"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:gravity="left"
android:text="@string/str_show_pwd"/>
</LinearLayout>
RequestPwd.Java
import android.text.method.HideReturnsTransformationMethod;
import android.text.method.PasswordTransformationMethod;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.request_pwd_layout);
final CheckBox chkShow = ((CheckBox)findViewById(R.id.chk_showpwd));
chkShow.setOnClickListener(
new View.OnClickListener()
{
public void onClick(View v)
{
TextView txtPwd = (TextView)findViewById(R.id.txt_pwd);
final boolean isChecked = chkShow.isChecked();
if(isChecked)
{
// 顯示明碼
txtPwd.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
}
else
{
// 顯示 **
txtPwd.setTransformationMethod(PasswordTransformationMethod.getInstance());
}
}
});
}
沒有留言:
張貼留言