如果隐式使用PreferenceAcitivity,则使用SharedPreference文件。 因此,在您的PreferenceAcitivity之外,您可以访问SharedPrefence文件并对其进行更改。很快,这些更改将反映在您的PreferenceActivity上。
您需要一个上下文才能访问SharedPreference。以其他simpleAcitivity的onCreate方法为例。
UPDATE: 使用这种方法你都无法启用/禁用物品。你可以改变它们的值或删除
@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();
}
}
其他方式,并在我看来,更好,更容易被提供替代资源。您可以使用资源限定符根据Android API级别提供许多定义您的应用设置的xml文件。例如:v2,v17。
res-v4
setting.xml
res-v17
setting.xml -> This file can include specific Jelly Beans configs
关于您的第一个解决方案,项目无法启用/禁用,所以我不知道他们是否与此版本的Android兼容或不兼容。你的第二个解决方案是我的答案。快乐编码Bruno Mateus – 2013-03-06 16:22:00
不客气。 – 2013-03-06 16:34:19