gpt4 book ai didi

java - 在我的 Activity 类中使用构造函数有意义吗?

转载 作者:太空宇宙 更新时间:2023-11-04 10:50:43 25 4
gpt4 key购买 nike

我当前面临的问题是从我的 Activity 类中获取值。这是我获取用户输入并将其传递给我的播放器以决定应该发生什么的地方。

我想知道在 Activity 类和 onCreate 中都有一个构造函数是否有意义?我不太明白其中的区别,但我知道如果我在类中创建一个构造函数并在构造函数中设置变量的值,它就会传递该变量。如果我没有构造函数,该类将向我的 Player 类返回 0(null)。我将尽可能少地包含内容并尝试解释我的意思,因为我发现如果没有示例就很难解释。

Game.java | Activity 类

public class Game extends Activity implements SensorEventListener{

private int yDirection, xDirection;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(new GameView(this));
}

@Override
public boolean onTouchEvent(MotionEvent motionEvent) {
switch (motionEvent.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
yDirection = 1;
break;
case MotionEvent.ACTION_UP:
yDirection = 2;
break;
}
return true;
}

public int getyDirection() {
return yDirection;
}

}

Player.java

public class Player {

Game userInput;

public Player(Context context){

userInput = new Game();
}
}

我没有包含我调用它的部分,但是如果我在此处的 Player 类中调用 Game.java 的值,它将返回 0(null) 但是,如果我记录变量名称并从 Game.java 类查看它,它将是正确的值。

如果我保持玩家类相同但更改 Game.java 类,如下所示,我将不断返回值 5,因为它是在构造函数中设置的,但是当玩家类调用时它不会按应有的方式更新

Game.java | Activity 类

public class Game extends Activity implements SensorEventListener{

private int yDirection, xDirection;

public Game(){
yDirection = 5;
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(new GameView(this));
}

@Override
public boolean onTouchEvent(MotionEvent motionEvent) {
switch (motionEvent.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
yDirection = 1;
break;
case MotionEvent.ACTION_UP:
yDirection = 2;
break;
}
return true;
}


public int getyDirection() {
return yDirection;
}
}

感谢所有帮助!

最佳答案

要将值传递给另一个启动的 Activity ,您应该使用 Intent:

Intent intent = new Intent(getBaseContext(), SignoutActivity.class);
intent.putExtra("EXTRA_SESSION_ID", sessionId);
startActivity(intent);

并以这种方式检索它:

String s = getIntent().getStringExtra("EXTRA_SESSION_ID");

关于java - 在我的 Activity 类中使用构造函数有意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47904165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com