【问题标题】:How do I save and read an integer on android libgdx?如何在 android libgdx 上保存和读取整数?
【发布时间】:2014-05-11 10:09:40
【问题描述】:

如何保存一个可以被覆盖的整数,然后在android上读取它?我正在使用 libgdx。我知道如何在我的桌面上使用它,但我想要内部存储。

【问题讨论】:

    标签: android file integer save libgdx


    【解决方案1】:

    你应该使用 libgdx Preferences

    这样它就可以跨平台工作了! (包括安卓)

    因为您只想存储一些应该正是您需要的整数。

    查看示例:

    //get a preferences instance
    Preferences prefs = Gdx.app.getPreferences("My Preferences");
    
    //put some Integer
    prefs.putInteger("score", 99);
    
    //persist preferences
    prefs.flush();
    
    //get Integer from preferences, 0 is the default value.
    prefs.getInteger("score", 0);
    

    【讨论】:

    • 这可行,但是当我关闭应用程序并结束任务时,它不会保存高分并返回到 0。
    • 确保您在关闭应用程序之前flush()
    • 好的,所以每次都刷新()?我在 if 语句中有它,并且不是每次运行都调用它
    • 您可以使用libgdx life-cycle methods 来保留您的偏好。因此,例如,您可以在 pause() 方法中执行 prefs.flush()
    • prefs = Gdx.app.getPreferences(file); prefs.putInteger("score", score); prefs.flush(); highscore = prefs.getInteger("score", 0); 应用完全关闭后仍然无法保存。但是,如果您保持应用程序打开,它将保存。
    【解决方案2】:

    有不同的方法可以做到这一点:

    1. 您可以写信给FileHandle。只需创建一个FileHandle 就像Gdx.files.local("myfile.txt"); 并使用fileHandle.writeString(Integer.toString(myInt)); 写入它 请注意,InternalClasspath 是只读的,因此您不能在其中写入文件。
      另请注意,并非所有类型的 gdx.files. 都可用于所有后端。更多关于 here.
    2. 第二种方法是PreferencesPreferences 是为 HTML5 应用程序获取持久数据的唯一方法。
      Preferences 是 XML 文件,您可以在其中存储、读取和更改数据。 要为您的应用创建Preferences,您只需调用:

      首选项 myPref = Gdx.app.getPreferences("PreferenceName");

    请注意,您应该使用全名,例如com.stackoverflow.preferences,因为在桌面上所有Preferences 都使用相同的文件。
    要写入数据,您可以将myPref.putInteger("name", value) 用于Integers,myPref.putBoolean(("name", value) 用于Booleans...确保在完成所有更改后调用myPref.flush(),以保存新数据。
    要获取数据,您可以致电myPref.getInteger("name, defaultValue")。如果没有具有给定名称的数据,则返回默认值。 更多关于Preferenceshere

    希望我能帮上忙。

    【讨论】:

      猜你喜欢
      • 2018-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多