此程式欄位包含輸入帳號與輸入密碼的EditText元件 , 以及設定顯示密碼的CheckBox元件 , 輸入帳號的欄位預設只能輸入數字 , 輸入密碼的欄位預設以密碼方式顯示 , 當顯示密碼的CheckBox被勾選後 , 則將所輸入的密碼直接以明碼顯示出來 , 這題藉由更改EditText的inputType屬性來改變PassWord是否可視 , 以下是程式碼。
package COM.TQC.GDD01; import android.app.Activity; import android.os.Bundle; import android.text.InputType; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; public class GDD01 extends Activity { EditText et1 , et2; CheckBox cb; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); et1 = (EditText) this.findViewById(R.id.mAccount); et2 = (EditText) this.findViewById(R.id.mPassword); cb = (CheckBox) this.findViewById(R.id.mCheck); cb.setChecked(false); cb.setOnCheckedChangeListener(OCCListener); } public CheckBox.OnCheckedChangeListener OCCListener = new CheckBox.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton arg0, boolean arg1) { // TODO Auto-generated method stub if(arg0.isChecked()) et2.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); else et2.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); } }; }
以下是main.xml
P.S. 題目中所要求的Variable和Method皆會保留 , 也會根據題目所要求的流程去實作 , 縱使題目要求繞遠路....
沒有留言:
張貼留言