Java中的对象依赖(带有侦听器,在libgdx中)

时间:2013-03-14 17:19:23

标签: java android libgdx

我有一个包含

的主类
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的当前值而不是对它的引用。

1 个答案:

答案 0 :(得分:0)

Aaaand我已经弄清楚了。

我有一条线

Gdx.input.setInputProcessor(stage);

在我的屏幕的两个构造函数中。这导致第二个屏幕覆盖输入处理器,同时用户正在显示第一个屏幕。 (因此我没有错误!)

修正:

@Override
public void show() {
    Gdx.input.setInputProcessor(stage);
}

将此添加到我的两个屏幕中。