Libgdx: 不同的偏好设置

Libgdx: Different profiles of Preferences

我四处搜索,没有找到与我想要实现的目标相关的任何内容。

尽可能简单的解释。我的应用程序存储各种值,基本上充当用户的设置。现在我想要的是让用户能够在不同的首选项文件之间切换。喜欢不同的配置文件。 因此,单击一个按钮,通过应用程序的所有首选项实例将开始读取具有不同值的不同文件,例如:

main.preferences = Gdx.app.getPreferences("prefs_2");

第一个配置文件应该是 "prefs_1" 而不是在应用程序启动时默认加载。我不知道像上面显示的那样更改首选项文件是否完全有效。但我希望它能说明我的想法。

并且当单击该按钮更改首选项文件时,该应用程序将读取该应用程序中所有 class 文件的值,直到它重新启动并返回到默认文件:

public class Main extends Game {
public SpriteBatch batch;
public ShapeRenderer renderer;
private Assets assets;

//Local Preferences
public Preferences preferences;

public Main(utilsInterface utils){
    this.utils = utils;
}
@Override
public void create () {
    batch = new SpriteBatch();
    renderer = new ShapeRenderer();
    assets = new Assets();
    preferences = Gdx.app.getPreferences("prefs_1");

    setScreen(new SplashScreen(this));
}
@Override
public void render () {
    super.render();

}
@Override
public void resize(int width, int height) {
    super.resize(width, height);
}

@Override
public void dispose() {
    super.dispose();
    assets.dispose();
    batch.dispose();
    renderer.dispose();
}
@Override
public void pause() {
    // TODO Auto-generated method stub
    super.pause();
    // Logs 'app deactivate' App Event.
    // AppEventsLogger.deactivateApp(this);
}
@Override
public void resume() {
    // TODO Auto-generated method stub
    super.resume();
    //Assets.manager.finishLoading();
    // Logs 'install' and 'app activate' App Events.
}

}

注意* 我在整个应用程序中使用来自主 class 的相同首选项实例。

是的,这会起作用。

如果您使用不同的设置文件,它将使用该文件的设置。只要确保所有设置都有默认值,这样如果创建了一个新文件(当您打开一个不存在的文件时,写入并刷新它)您仍然可以使用它而无需写入所有设置。