gpt4 book ai didi

java - 使用 PreferenceScreen 时重置首选项

转载 作者:行者123 更新时间:2023-12-01 06:21:11 25 4
gpt4 key购买 nike

我正在从 xml 文件加载 PreferenceScreen,用作配置新事件的屏幕,因此我尝试清除并重置此 Activity 正在使用的 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);

编辑:为了更好地解释我正在尝试做什么(以防我的方法偏离):我需要清除给定 Activity 上使用的共享首选项,同时不干扰其他 Activity 的设置(因为它们应无限期地持续)。

最佳答案

您可以尝试使用 PreferenceManager.getDefaultSharedPreferences(context) 来获取您的首选项吗?

编辑:

选择重置值后,

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

关于java - 使用 PreferenceScreen 时重置首选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4433135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com