如何将首选项保存到SharedPreferences以外的其他位置

时间:2010-03-19 21:42:36

标签: android

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

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

3 个答案:

答案 0 :(得分:4)

  

有没有重复使用的简单方法   PreferenceActivity保存首选项   到文件或是创建的情况   一项全新的活动来完成这项工作?

不是真的。我的意思是,您可以将SharedPreferences子类化,将其删除,并将其映射到您自己的数据模型,但这对于可维护性而言远比仅仅使用SharedPreferences更糟糕。< / p>

  

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

这只是一个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)。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

当用户点击首选项时,通常会将首选项保存到共享首选项中。添加代码以在onPreferenceTreeClick()函数上更新外部数据持有者。