2011-12-08 8 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を保存するだけです。しかし、私はそれを取得する方法を知らない。アンドロイドフォンの戻るボタンを押すと、アプリケーションが終了したのでそして、私がアプリに戻ると、ユーザー名とパスワードが消えます。 – 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); 
関連する問題