Android:使用 PreferenceActivity(或 PreferenceFragment)但使用我自己的代码 save/load 值

Android: using a PreferenceActivity (or PreferenceFragment) but with my own code to save/load values

我正在开发一个 Android 应用程序,它需要显示带有各种开关和其他内容的设置屏幕。

问题是这样的:该应用程序是一个多平台项目,我已经有自定义代码用于以跨平台方式保存和加载我的首选项,所以我不会依赖 Android的SharedPreferences机制。

我想做的是以编程方式创建一个 PreferenceActivity 并用我的设置填充它,但是让设置值通过我自己的自定义代码获得 loaded/saved。

换句话说:我想重用 PreferenceActivity 提供的漂亮 "list with sections and editing controls",但我想动态填充它并实现我自己的代码 set/get 偏好值。

我找不到太多关于此的文档,有人知道从哪里开始吗?

它的工作原理与任何其他设置非常相似。只需获取对 UI 小部件的引用,在需要时保存它并在需要时设置它。

    //get reference to setting
    CheckBoxPreference myCheckBox = (CheckBoxPreference) findPreference("myKey");

    // Set the preference
    myCheckBox.setChecked(true);

    //Save setting
    boolean settingToSave=myCheckBox.isChecked();

使用与此类似的代码解决了问题:

唯一缺少的是监听器的实现来监视变化,可以使用以下方法轻松设置:

Preference.setOnPreferenceChangeListener(Preference.OnPreferenceChangeListener onPreferenceChangeListener)