在活动之间使用共享首选项

Tan*_*hwa 4 android sharedpreferences

我试图在我的项目的两个活动之间共享共享偏好,但由于某种原因我无法传递数据.

我有活动A,它读取共享首选项和活动B,读取和编辑共享首选项.

这是我用来在Activity B中编写共享首选项的代码:

SharedPreferences sharedPref = getSharedPreferences("myPrefs", Context.
    MODE_WORLD_WRITEABLE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("theme", "black");
editor.commit();
Run Code Online (Sandbox Code Playgroud)

并在活动A中阅读:

SharedPreferences sharedPref = getSharedPreferences("myPrefs", Context.
    MODE_WORLD_WRITEABLE);
String theme=sharedPref.getString("theme","blue");
Run Code Online (Sandbox Code Playgroud)

我尝试使用不同的模式,它在活动B中以私有模式工作,但它没有与活动A共享.出于某些原因,我认为我有两个不同的共享首选项(同名)用于两个不同的活动.如何对这两个活动使用相同的共享首选项?

Ale*_*tin 13

您可以更简单 - 在任何活动中:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
Run Code Online (Sandbox Code Playgroud)

从任何地方都可以这样使用相同的首选项.

http://developer.android.com/reference/android/preference/PreferenceManager.html#getDefaultSharedPreferences(android.content.Context)