我正在从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);
编辑:试图更好地解释我正在尝试做什么(如果我的方法是关闭的):我需要清除在给定活动上使用的共享首选项,同时不干扰其他活动的设置(因为它们应该无限期地坚持下去。)
答案 0 :(得分:-1)
您是否可以尝试使用PreferenceManager.getDefaultSharedPreferences(context)
获取您的首选项。
编辑:
选择重置值后,adb shell 进入您的应用程序。如果查看首选项文件,您将看到它已设置了默认值。尝试刷新您的活动。我这样做的一种方法是简单地从“应用程序”菜单中删除它。当活动重新启动时,它将具有预期的默认值。