【问题标题】:How to save preferences to somewhere other than SharedPreferences如何将首选项保存到 SharedPreferences 以外的其他位置
【发布时间】:2010-03-19 21:42:36
【问题描述】:

我的应用程序在多个平台上使用,因此它将首选项保存到一个文件中(而不是标准的 Android SharedPreferences)。

是否有任何简单的重用 PreferenceActivity 将首选项保存到文件中,还是创建一个全新的活动来完成这项工作?如果是后者,是否有我可以使用的布局使活动看起来像正常的首选项屏幕? PreferenceActivity 使用 com.android.internal.R.layout.preference_list_content 但这似乎不适用于应用程序重复使用。

【问题讨论】:

    标签: android


    【解决方案1】:

    有没有什么容易重用的 PreferenceActivity 保存首选项 到文件还是创建的情况 一项全新的活动来完成这项工作?

    不是真的。我的意思是,你可以继承 SharedPreferences,去掉胆量,然后将其映射到你自己的数据模型,但这比一开始就使用 SharedPreferences 的可维护性要差得多。

    如果是后者,是否存在 我可以使用的布局 活动看起来很正常 首选项屏幕?

    这只是一个ListView。与仅使用 SharedPreferences 相比,这样做会花费您很多更多的时间。

    PreferenceActivity 使用 com.android.internal.R.layout.preference_list_content 但这似乎不是 可供应用重复使用。

    确实如此。如果您安装了 SDK,它现在就在您的硬盘上。查看$ANDROID_HOME/platforms/$API/data/res/layout,其中$ANDROID_HOME 是您拥有SDK 的位置,$API 是一些API(例如android-2.1)。

    【讨论】:

    • 感谢指向 R.layout.preference_list_content 的指针。我错过了那个目录。我从昨天开始重新访问我的代码,碰巧 PreferenceActivity 工作得很好。我需要做的就是在 onCreate() 和 onStop() 方法中读取和写入我的外部首选项文件。由于某种原因,昨晚它对我不起作用。一定是很晚了。
    • :: 眨眼 :: 这行得通吗?凉爽的!我原以为这会比听起来更痛苦。那么,我为多余的警告表示歉意。
    【解决方案2】:

    您可以创建一个将数据从SharedPreferences 导出到文件的函数。

    【讨论】:

      【解决方案3】:

      通常,当用户单击偏好项时,偏好设置会保存到共享偏好设置中。添加代码以更新 onPreferenceTreeClick() 函数上的外部数据持有者。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-06-25
        • 1970-01-01
        • 2022-01-26
        • 1970-01-01
        • 2014-12-13
        • 2011-12-18
        • 2013-01-16
        • 2020-04-25
        相关资源
        最近更新 更多