我对偏好设备有疑问,我想知道是否有人可以帮助我? 我正在开发一个带有设置屏幕和游戏屏幕的游戏。两者都需要能够写入相同的首选项。代码在Settingsscreen中工作,如下所示:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li data-slide-to="0" data-target="#myCarousel" class="appendLi"></li>
<li data-slide-to="0" data-target="#myCarousel" class="appendLi"></li>
<li data-slide-to="0" data-target="#myCarousel" class="appendLi"></li>
<li data-slide-to="0" data-target="#myCarousel" class="appendLi"></li>
<li data-slide-to="0" data-target="#myCarousel" class="appendLi"></li>
</ul>
并且在Gamescreen中我收到错误。游戏屏幕中的代码与设置中的代码相同。这有效:
public class SettingsScreen implements Screen{
private Preferences prefs;
final Preferences prefs = Gdx.app.getPreferences("myprefs");
prefs.putFloat("volume", volume);
但这不是:
volume = prefs.getFloat("volume", 1);
我收到以下错误:
prefs.putFloat("volume", volume);
答案 0 :(得分:0)
您可能在构造函数中有一个名为“prefs”的局部变量,也称为“prefs”的成员变量仍为空,因为您只将Preferences实例分配给本地范围变量。
private Preferences prefs; // class member variable
final Preferences prefs = Gdx.app.getPreferences("myprefs"); // local scope variable
在SettingsScreen中使用它的原因可能是您在本地范围内对prefs进行调用。
这是你可能想要的:
// class member variable
private final Preferences prefs;
// constructor:
this.prefs = Gdx.app.getPreferences("myprefs");