android - 从 SharedPreferences 转换过来

标签 android libgdx

我已经在 Android 上发布了我的游戏,但我没有在 libGDX 中构建它。现在我正在重建游戏,我遇到了一个大问题,我希望有人能帮助我。

我最初使用 Android 的 SharedPreferences 来保存数据我现在将使用 libGdx Preferences。这对于从未下载过游戏的人来说很好。但我担心已经下载它的人(我不希望他们丢失保存的数据)。有没有一种简单的方法可以在我的新版本游戏中获取这些数据?

更新

我能够使用完全相同的代码。由于 LibGDX 的 Preferences 是基于 SharedPreferences 的。这太棒了。我只希望在将它移至 iPhone 时它​​能正常工作。

最佳答案

您应该能够在游戏的 Android 后端读取旧的 SharedPreferences(您可以在其中使用任意 Android 代码)。

您需要使用 Libgx“平台特定代码”方法进行设置,以便您的共享代码可以调用 Android 代码。 (有关详细信息,请参阅维基页面:https://code.google.com/p/libgdx/wiki/ApplicationPlatformSpecific)。

有几种方法可以构建它,但我认为您应该首先创建一个包含 upgradeOldPreferences 方法的接口(interface)。将实现该接口(interface)的类的引用传递到每个后端的 ApplicationListener 的构造函数中(该类在其他后端上是空操作)。在 Android 后端,您需要检查"new"首选项以查看是否需要转换现有首选项。如果这样做,请使用特定于 Android 的 SharedPreferences 代码阅读它们。您可以在 Android 后端使用 Libgdx API,因此您可以写出 Libgdx 首选项,或者将结果数据传回您的游戏(例如,作为接口(interface)方法的返回值)。此时,您可能希望在新首选项中保留一个标志,表明您已经转换了旧首选项。

或者,您可以依靠 Android 上的 Libgdx 使用 SharedPreferences 作为其后端(参见 AndroidPreferences.java)这一事实,并更直接地将旧首选项迁移到 Libgdx 使用的格式。

关于android - 从 SharedPreferences 转换过来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16765574/

相关文章:

libgdx - 如何在一个屏幕中使用 SpriteBatch 和 ShapeRenderer?

android - 如何在构建源代码之前在 android 中创建自定义启动屏幕?

android - 从 Android App Bundle 生成通用 APK

Android GDX 游戏检测到正确的形状?

libgdx - LibGdx 中动态彩色图形的像素图或纹理?

ios - iOS 上的 LibGDX FrameBuffer 怪癖

android - 如何使用暴力取消 AsyncTask

java - 如何在android项目中包含HTML5WebView

java - 如何结合Scene2d和Bullet?

java - libGDX - 在图像周围制作边框