2012-03-23 34 views
0

Android 2.1 SDKを使用していて、ユーザーのログインセッションを共有設定に保存しようとしていますが、共有設定に値を保存した後に再取得できません。ここでは、SharedPrefrenceの値を保存して取得するために使用したコードを貼り付けています。共有設定の問題

public void setValue(String name, String value, String prefName) { 
    sharedPref = mContext.getSharedPreferences(prefName, Context.MODE_PRIVATE); 
    sharedPref.edit().putString(name, value); 
    sharedPref.edit().commit(); 
} 


public String getValue(String name, String prefName) { 
    String value = null; 
    sharedPref = mContext.getSharedPreferences(prefName, Context.MODE_PRIVATE); 
    value = sharedPref.getString(name, value); 
    return value; 
} 

iは、値を保存し、取得中に、私は例外を取得していないです、このコードではいくつかのことを見逃していました。助けてくれてありがとう。

答えて

3

edit()をお電話するたびにEditorインスタンスが返されます。だからインスタンスを取得し、変更を加えて、そのままにしておきます。次に、2番目のものを取得し、変更なしでコミットします。その結果、環境設定に価値の変化は生じません。 commit()

むしろチェーン:また

sharedPref.edit().putString(name, value).commit(); 

1つの特定のインスタンスで複数行に分割して:

Editor e = sharedPref.edit(); 
e.putString(name, value); 
e.commit(); 
0
private SharedPreferences myPrefs; 
    myPrefs = Actionactivity.this.getSharedPreferences("myPrefs", MODE_WORLD_WRITEABLE); 
    SharedPreferences.Editor prefsEditor = myPrefs.edit(); 
    prefsEditor.putString("Mobile_no", getText_no.getText().toString().trim()); 
    prefsEditor.commit(); 


myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE); 
    myPrefs.getString("Mobile_no", ""); 

はこの1つのコードの仕事をしてみてください