1. 程式人生 > >安卓 實現記住使用者名稱和密碼功能

安卓 實現記住使用者名稱和密碼功能

開發步驟

  1. 在程式佈局中鍵入複選框
  2. 在LoginActivity類中加入登陸處理的方法
    3.在 LoginActivity類中加入是否記住密碼的判斷方法
    4.運用SharedPreferences進行使用者名稱和密碼的儲存
    5.如果使用者名稱和密碼正確,會跳轉到歡迎介面

注意問題

  1. 要注意資料之間的轉換
  2. 複選框的不同狀態處理
  3. SharedPreferences的用法
  4. 頁面的正確跳轉

事件處理的主要程式碼

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); sp = this.getSharedPreferences("userdata", Context.MODE_WORLD_READABLE); Username = (EditText) findViewById(R.id.etUsername); Password = (EditText) findViewById(R.id.etPassword
); cbPW =(CheckBox) findViewById(R.id.cbPW); btnLogin = (Button) findViewById(R.id.btnLogin); if(sp.getBoolean("IsCheck",true)){ //設定預設是記錄密碼狀態 cbPW.setChecked(true); Username.setText(sp.getString("UserName", "")); Password.setText
(sp.getString("Password", "")); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } public void onClick(View view) { UserNameValue = Username.getText().toString(); PasswordValue = Password.getText().toString(); if(UserNameValue.equals("admin")&&PasswordValue.equals("12345")){ Toast.makeText(LoginActivity.this,"登入成功", Toast.LENGTH_SHORT).show(); //登入成功和記住密碼框為選中狀態才儲存使用者資訊 if(cbPW.isChecked()) { //記住使用者名稱、密碼、 Editor editor = sp.edit(); editor.putString("UserName", UserNameValue); editor.putString("Password",PasswordValue); editor.commit(); } //跳轉介面 Intent intent = new Intent(LoginActivity.this,WelcomeAvtivity.class); LoginActivity.this.startActivity(intent); }else{ Toast.makeText(LoginActivity.this,"使用者名稱或密碼錯誤,請重新登入", Toast.LENGTH_LONG).show(); } } public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) { if (cbPW.isChecked()) { System.out.println("記住密碼已選中"); sp.edit().putBoolean("IsCheck", true).commit(); }else { System.out.println("記住密碼沒有選中"); sp.edit().putBoolean("IsCheck", false).commit(); } }

原始碼