6

Android の SharedPreferences に問題があります。

これは私のコードです:

    SharedPreferences s = this.getSharedPreferences("kurs",MODE_WORLD_READABLE);
    s.edit().putString("eur", "1.80");
    s.edit().commit();
    SharedPreferences a = this.getSharedPreferences("kurs",MODE_WORLD_READABLE);
    String kurs = a.getString("eur","7");

    Toast hhh= Toast.makeText(getApplicationContext(),kurs, Toast.LENGTH_LONG);
    hhh.show();

私は文字列を設定していて、その直後に onCreate メソッドで読みたいと思っています。しかし、私は常に指定されたデフォルト値「7」を取得します。

何が問題だったのですか?私はすでにその問題を調査しましたが、役立つものは見つかりませんでした。

ご協力いただきありがとうございます :)

4

3 に答える 3

10

「s.edit()」を呼び出すたびに、新しいエディターが作成されます。したがって、「commit()」呼び出しは、設定が適用されていないエディターのインスタンス上にあります。これを試して:

SharedPreferences s = this.getSharedPreferences("kurs",MODE_WORLD_READABLE);
Editor editor = s.edit();
editor.putString("eur", "1.80");
editor.commit();
于 2013-10-21T13:06:36.947 に答える
2
SharedPreferences myPrefs = this.getSharedPreferences("kurs", MODE_WORLD_READABLE); 
SharedPreferences.Editor editor = myPrefs.edit(); 
editor.putString("eur", "1.80");
// commit the edits 
editor.commit();


SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", context.MODE_WORLD_READABLE); 
String kurs = myPrefs.getString("eur", "7");

Toast hhh= Toast.makeText(getApplicationContext(),kurs, Toast.LENGTH_LONG);
hhh.show();

これを試して

于 2013-10-21T13:06:52.590 に答える