2011-12-08 109 views
1

當我點擊「記住我」複選框時,根據代碼,它將通過sharepreferences保存用戶名和密碼。但是,當我退出我的應用程序並返回時,用戶名和密碼將消失。在會話間記住我的功能

如何在會話之間保存用戶名和密碼?

// Remember me function 
     CheckBox cbRemember = (CheckBox) findViewById(R.id.chkRememberPassword); 
     if (cbRemember.isChecked()) { 

      // save username & password 
      SharedPreferences mySharedPreferences = getSharedPreferences(
        "PREFS", Activity.MODE_PRIVATE); 
      SharedPreferences.Editor editor = mySharedPreferences 
        .edit(); 
      editor.putString("UserName", 
        String.valueOf(txtLogin.getText().toString())); 
      editor.putString("Password", 
        String.valueOf(txtPassword.getText().toString())); 
      editor.commit(); 

     } 
+0

你能發佈你如何從共享首選項獲取數據? – user370305

+0

我只有這個sharepreferences才能保存。但我不知道如何檢索它。因爲當我按下android手機中的後退按鈕時,它退出了應用程序。當我回到應用程序,用戶名和密碼消失。 – sowhat

+0

因此,如果不從共享首選項中檢索數據,您怎麼能說它不是共享首選項? – user370305

回答

0

當您退出應用程序並返回時,將調用onResume()方法。這是您應該將Paresh Mayani的代碼檢索用戶名和密碼的地方。檢查here以瞭解Android中活動的生命週期。

0

我認爲這個問題是與Activity.MODE_PRIVATE標誌的使用,而不是getSharedPreferences( 「PREFS」,MODE_WORLD_WRITEABLE)標誌。

+0

NO,它不是必需的,如果你想共享首選項僅適用於您的應用,然後使用MODE_PRIVATE。 – user370305

+0

那麼結論是什麼?該編碼,我應該改變? – sowhat

1

你一樣已經把用戶名和密碼字符串共享偏好裏面,你可以檢索通過如下做同樣的:

SharedPreferences settings = getSharedPreferences("PREFS",0); 
settings.getString("UserName", ""); 
settings.getString("user", ""); 

但我認爲實現還記得我的功能,只要把一個布爾標誌時登錄成功:

editor.putBoolean("login",true); 

和檢索應用程序時重新啓動下一次:

settings.getBoolean("login", false);