如果您隐式使用 PreferenceAcitivity,则您使用的是 SharedPreference 文件。因此,在 PreferenceAcitivity 之外,您可以访问 SharedPrefence 文件并对其进行更改。很快,这些更改将反映在您的 PreferenceActivity 上。
您需要 Context 来访问 SharedPreference。期待其他 simpleAcitivity 的 onCreate 方法。
更新:
使用这种方法,您无法启用/禁用项目。您可以更改它们的值或删除它们
@Override
protected void onCreate(Bundle state){
super.onCreate(state);
// Restore preferences
SharedPreferences settings = getPreferences(MODE);
// Make sure we're running on Honeycomb or higher to use ActionBar APIs
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
//change your setting here
// We need an Editor object to make preference changes.
// All objects are from android.context.Context
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("silentMode", mSilentMode);
// Commit the edits!
editor.commit();
}
}
其他方式,我认为更好更容易的是提供替代资源。您可以提供许多 xml 文件,这些文件根据 Android API 级别使用资源限定符定义您的应用程序设置。例如:v2、v17。
res-v4
setting.xml
res-v17
setting.xml -> This file can include specific Jelly Beans configs