
public class SaveAndLoad { public Preferences pref; public final String path = "Highscore"; public SaveAndLoad() { pref = Gdx.app.getPreferences("GameTitle"); } public voID saveInt(int value) { pref.putInteger(path,value); pref.flush(); } public int getInt() { return pref.getInteger(path); }} 当我尝试保存我的高分时,我会调用saveInt(高分),当你再次打开游戏时我会调用getInt.
constructor(){ SaveAndLoad sdRemote = new SaveAndLoad (); try { highscore = sdRemote.getInt(); } catch (NullPointerException e) { highscore = 0; } } 问题是当我在早期游戏之后再次开始游戏时,高分不加载,它返回零…
我已经完成了明确许可:
谢谢
///丹尼尔
PS.在最后一个答案中,我说它适用于某些设备,但我后来发现并非如此.
解决方法 确保检索这样的数据:SharedPreferences settings = getSharedPreferences(PREFS_name,0);int silent = settings.getInt("score",0); 并保存如下:
SharedPreferences settings = getSharedPreferences(PREFS_name,0); SharedPreferences.Editor editor = settings.edit(); editor.putInt("score",playerscore); // Commit the edits! editor.commit(); //<---------- 编辑:
啊,你在使用GDX.在这种情况下,请确保在GDX初始化后初始化此类.检查是否有Gdx.app.getPreferences(“游戏”);返回null.
EDIT2:
好的,所以我们已经确认Gdx在某些设备上存在问题(很糟糕).
如果你真的需要在桌面设备和AndroID设备上使用它,还有另一种方法.如果你只是想让你的游戏在AndroID上工作,你就不应该使用Gdx来保存数据.
我建议你使用一种称为GDX AndroID界面的东西.这样您就可以使用本答案中使用的原生AndroID调用自行处理在AndroID设备上保存数据.这不是很容易,但这里有一个教程:
https://code.google.com/p/libgdx-users/wiki/IntegratingAndroidNativeUiElements3TierProjectSetup
总结以上是内存溢出为你收集整理的android – 无法使用Preferences保存或加载Integer全部内容,希望文章能够帮你解决android – 无法使用Preferences保存或加载Integer所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)