如果您想使用共享首选项,问题在于您不能真正地存储列表或类似的东西。共享首选项仅支持布尔值、浮点数、整数、字符串、长整型和集合。因此,您最好选择 Set。在那里,您可以将每个高分值转换为字符串,将其添加到 Set 中,然后将此 set 存储在共享首选项中。在启动应用程序期间,您可以检索集合,将字符串转换回整数或其他用于表示高分的值。例如,请参见此方法: http://developer.android.com/reference/android/content/SharedPreferences.Editor.html#putStringSet(java.lang.String, java.util.Set}编辑正如 MisterSqounk 指出的那样,Set 仅在 API 级别 11 及以上才可用。因此,如果您编写的代码低于此级别,建议直接将值作为整数存储,并使用类似 highscore1、highscore2 等键。在检索高分值时,您可以遍历所有键,并使用 SharedPreferences#contains(String key) 检查是否有可用值。
不久前,我实现了一个库,使用MEMDISKCACHE和SHAREDPREF作为GENERIC_STORE。您甚至可以存储/检索可序列化的Java对象。例如,要满足您的需求,只需创建自定义可序列化Java对象,然后即可开始使用。我已经在我的应用程序中使用它(甚至用于大量的Facebook照片数据),效果非常好,就像抽象层一样。如果有人感兴趣,这里是源代码。 https://github.com/wareninja/generic-store-for-android
ListPreference
项目类型来保存所选项目的位置。您仍然可以使用动态列表,只需将所选项目的ID存储在首选项中,并将列表存储在数据库中即可。 - Joseph Earl