此程式欄位包含輸入帳號與輸入密碼的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皆會保留 , 也會根據題目所要求的流程去實作 , 縱使題目要求繞遠路....


沒有留言:
張貼留言