0

私の最初のアクティビティでは、共有設定を次のように保存しています。

SharedPreferences settings = getSharedPreferences(PREFS_NAME, MODE_WORLD_READABLE);
settings.edit().putString("uname", username);

それから私は別の活動でそれを読んでいます

  SharedPreferences settings = getSharedPreferences(PREFS_NAME, MODE_WORLD_READABLE);
  String uname = settings.getString("uname", "");

しかし、uname文字列は常に空です。

4

2 に答える 2

1

.commitをするのを忘れました

http://developer.android.com/reference/android/content/SharedPreferences.Editor.html#commit%28%29

settings.edit().putString("uname", username).commit();
于 2013-03-24T13:22:44.927 に答える
0

だからあなたの問題は明らかです。これを見てください

settings.edit().putString("uname", username);

ここではString経由で保存しようとしていますSharedPreferences.Editorが、StringをSharedPreferencesに永続的に保存できる場合は、commit()も呼び出す必要があります。これは、操作を確認することを意味します。それ以外の場合、あなたの価値は決して保存されません。

これは1つの「トランザクション」のように想像できます。トランザクションをコミットしない場合、トランザクションで実行された変更はすべて破棄されます。

だから、正しい方法は

settings.edit().putString("uname", username).commit();
于 2013-03-24T13:29:11.087 に答える