進行會員登入或是銀行帳戶登入時須要給使用者輸入帳號及密碼,利用EditText作為密碼輸入是一個不錯的方法,可保密且又不會擔心被側錄,但是往往在輸入時顯示*****這樣的符號,有些時候會不知道是否自己輸入對了,特別是在登入網路銀行帳戶登入三次錯誤就會被鎖密碼的這種需要小心翼翼的事上,所以假設可以提供顯示密碼這個選取項,在需要的時候讓User可以看見自己已經輸入的密碼,必要時在關閉顯示,一切就好貼心了!
小試身手小範例:
探討EditText與CheckBox這兩個Widget並以EditText.setCheckedChangeListener()來設定顯示密碼的事件,最後透過isChecked()方法來辦別顯示密碼的狀態。
example0322.java
import android.app.Activity;
import android.os.Bundle;
import android.text.method.HideReturnsTransformationMethod;
import android.text.method.PasswordTransformationMethod;
import android.view.Window;
import android.view.WindowManager;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;
import android.widget.TextView;
public class example0322 extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
final EditText CodeEditText = (EditText)findViewById(R.id.EditText02);
final CheckBox CodeCheckBox = (CheckBox)findViewById(R.id.CheckBox01);
final TextView tv1 = (TextView)findViewById(R.id.TextViewCheckBox);
tv1.setText("顯示密碼");
CodeCheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// TODO Auto-generated method stub
if(CodeCheckBox.isChecked()){
CodeEditText.setTransformationMethod(HideReturnsTransformationMethod.getInstance());//顯示密碼
}else{
CodeEditText.setTransformationMethod(PasswordTransformationMethod.getInstance()); //隱藏密碼
}
}
});
}
}
main.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"
>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="100sp"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="帳戶 "
android:textSize="15sp"
android:layout_margin="10sp"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/EditText01"
android:layout_margin="10sp"
/>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="密碼 "
android:textSize="15sp"
android:layout_margin="10sp"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/EditText02"
android:layout_margin="10sp"
android:inputType="textPassword"
/>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/CheckBox01"
android:layout_marginLeft="150sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/TextViewCheckBox"
android:textSize="15sp"
/>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Login"
android:id="@+id/ButtonLogin"
android:layout_marginLeft="200sp"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cancel"
android:id="@+id/ButtonCancel"
/>
</LinearLayout>
</LinearLayout>
留言列表