使用PreferenceScreen时重置首选项

时间:2010-12-13 20:22:47

标签: java android

我正在从xml文件加载PreferenceScreen以用作配置新事件的屏幕,因此我尝试清除并重置此活动正在使用的SharedPreference的值。我遇到的问题是,当试图转向使用命名的首选项管理器时,似乎清除了首选项,但是当我选择EditTextPreference元素时,旧数据仍然是弹出窗口中默认输入的文本。

在我的onCreate方法中,我试图初始化首选项,清除它们,然后设置为默认值。我对开发资源的理解是,没有办法一步清除/重置......

private static final String PREFNAME = "newmeetingactivity.preferences";

//load preferences and set name
addPreferencesFromResource(R.layout.newmeeting_preferences);
getPreferenceManager().setSharedPreferencesName(PREFNAME);
getPreferenceManager().setSharedPreferencesMode(MODE_PRIVATE);

//Clear the preferences 
_sharedPreferences = getPreferenceManager().getSharedPreferences();
SharedPreferences.Editor ed = _sharedPreferences.edit();
ed.clear();
ed.commit();

//Load default preferences from file again
PreferenceManager.setDefaultValues(this, _sharedPreferences.toString() , MODE_PRIVATE, R.layout.newmeeting_preferences, true);

编辑:试图更好地解释我正在尝试做什么(如果我的方法是关闭的):我需要清除在给定活动上使用的共享首选项,同时不干扰其他活动的设置(因为它们应该无限期地坚持下去。)

1 个答案:

答案 0 :(得分:-1)

您是否可以尝试使用PreferenceManager.getDefaultSharedPreferences(context)获取您的首选项。

编辑:

选择重置值后,

adb shell 进入您的应用程序。如果查看首选项文件,您将看到它已设置了默认值。尝试刷新您的活动。我这样做的一种方法是简单地从“应用程序”菜单中删除它。当活动重新启动时,它将具有预期的默认值。