0

所以我想要实现的是:当用户购买新项目(纹理)时,他们可以单击按钮将旧项目(纹理)替换为新项目。我首先想到的是Objectmaps。所以我创建了这个:

ObjectMap<Integer, Texture> screenMap = new ObjectMap<Integer, Texture>();

我目前只使用两个项目来掌握它:

screenMap.put(prefs.getInteger("stoneOne", 0), sdStone);

screenMap.put(prefs.getInteger("stoneTwo", 1), stone_3);

这是我用来改变纹理的方法:

public void setStone1() {
    stoneImage = new Image(screenMap.get(0));

}

public void setStone(int screenId) {
    stoneImage = new Image(screenMap.get(screenId));

  }

现在到我可以弄清楚的部分:

Preferences prefs = Gdx.app.getPreferences("preferences");
                    prefs.putString("textField", textField.getText());
                    prefs.putString("textArea", textArea.getText());
                    prefs.getInteger("stone", );
                    prefs.putInteger("stone", );
                    prefs.flush(); 

我不知道要放什么整数,正如你所看到的,我什至现在把它遗漏了。我尝试了 screenId 整数,但由于它处于无效状态,因此无法访问?PS不要介意我为事物取的奇怪名字。我从一个旧项目中获取了一些代码。

4

2 回答 2

1

试着走另一条路。

  1. 将纹理保存到 sdcard
  2. 将文件路径保存到首选项中。

Preferences prefs = Gdx.app.getPreferences("preferences");
                        prefs.putString("texture_one_path", "/sdcard/tex1.jpeg");
                        prefs.putString("texture_two_path", "/sdcard/tex2.jpeg");
于 2015-03-02T22:38:07.340 回答
0

谢尔盖是对的。纹理又重又大,你可能有很多。那是为SD卡设计的。

首选项是在移动设备上使用的轻量级、安全的配置文件。它们通常也被加密,因此访问它们总是有成本的。它们通常用于用户设置、登录信息等。Android 对 Preferences 的外推称为 SharedPreferences。这是文档:http: //developer.android.com/reference/android/content/SharedPreferences.html

“SharedPreferences”的 iOS 概念称为 NSUserDefaults,这是它​​的页面:https ://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/index.html

底线:您不应该将太多信息保存到首选项中。将其用于字符串、全局值、用户设置(音量级别、用户凭据、关闭 gore 等)。对于大型字符串数据,请使用 raws。对于大型媒体,请使用 SD 卡。

希望有帮助。

于 2015-03-03T08:51:12.933 回答