2010-03-19 32 views
3

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

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

回答

4

有没有简单的重复使用 PreferenceActivity到 保存喜好到一个文件或者是创建 一个全新的活动来完成这项工作的情况吗?

不是。我的意思是,你可以继承SharedPreferences,挖掘出这些内容,并将它映射到你自己的数据模型中,但这对于可维护性来说远比将SharedPreferences放在首位要糟糕得多。

如果是后者的话是有 布局,我可以使用,这将使 活动看起来像正常 喜好屏幕?

这只是一个ListView。它会带你lot更多的时间来做到这一点,而不仅仅是使用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)。

+2

感谢指向R.layout.preference_list_content的指针。我错过了那个目录。 我重新从昨天我的代码,因为它发生PreferenceActivity工作得很好。我所需要做的就是在onCreate()和onStop()方法中读写我的外部首选项文件。由于某种原因,它昨晚对我不起作用。一定是晚了。 – Adrian 2010-03-20 19:51:13

+0

::眨眼::这是有效的?凉!我本以为会比听起来更痛苦。然后,我对警告的额外话语表示歉意。 – CommonsWare 2010-03-20 20:23:46

1

您可以创建一个功能,将数据从SharedPreferences导出到文件中。

0

正常情况下,首选项保存到共享首选,当用户点击prefrence项目。添加代码以更新onPreferenceTreeClick()函数的外部数据存储。

相关问题