我有一个包含
的主类registerscreen = new registerScreen(this);
emailRegisterscreen = new emailRegisterScreen(this);
registerScreen
包含一个带有侦听器的emailButton,在构造函数中生成:
emailButton.addListener(new ClickListener() {
@Override
public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
super.touchUp(event, x, y, pointer, button);
Gdx.app.log("registerscreen", "email clicked");
gameHolder.setScreen(gameHolder.emailRegisterscreen);
}
});
gameHolder
是主要类别。
现在,只有在emailRegisterscreen
之前初始化emailScreen
(上面的代码段不起作用)时,上述示例才有效。我想知道是否有可能让它工作并仍然首先定义寄存器屏幕?
我猜Java使用gameHolder.emailRegisterscreen
的当前值而不是对它的引用。
答案 0 :(得分:0)
Aaaand我已经弄清楚了。
我有一条线
Gdx.input.setInputProcessor(stage);
在我的屏幕的两个构造函数中。这导致第二个屏幕覆盖输入处理器,同时用户正在显示第一个屏幕。 (因此我没有错误!)
修正:
@Override
public void show() {
Gdx.input.setInputProcessor(stage);
}
将此添加到我的两个屏幕中。