gpt4 book ai didi

java - 如何将 Intent 发送到 gameView

转载 作者:行者123 更新时间:2023-12-02 04:04:30 26 4
gpt4 key购买 nike

我试图让用户在 StartScreen Activity 的 textEdits 中键入的内容显示在我的 MainActivity 中。

首先,我为 2 个用户创建了 2 个 Intent 。

String playerOneContent = playerOneEditText.getText().toString();
String playerTwoContent = playerTwoEditText.getText().toString();
Intent intent = new Intent(StartScreen.this, GameView.class);
intent.putExtra("NAME", playerOneContent);
intent.putExtra("NAME2", playerTwoContent);
startActivity(intent);

然后在我的 GameView 中我有以下代码:

public class GameView extends View {

Paint paint = new Paint();
Context context;

@Override
public void draw(Canvas canvas) {
super.draw(canvas);

paint.setColor(Color.YELLOW);
canvas.drawPaint(paint);

paint.setColor(Color.RED);
paint.setTextSize(20);
canvas.drawText("NAME",50, 50, paint);
}
}

如何从 StartScreen 获取 Intent 并在 GameView 中使用它?

这是我最初在 Main Activity 中的代码:

TextView playerOneTextView = (TextView)findViewById(R.id.playerOneTextView);
TextView playerTwoTextView = (TextView)
findViewById(R.id.playerTwoTextView);

playerOneTextView.setText(getIntent().getStringExtra("NAME"));
playerTwoTextView.setText(getIntent().getStringExtra("NAME2"));

最佳答案

不幸的是,如果不扩展 Activity 类, Intent 就无法在 Android 中工作。

因此,您可以在 GameView 类中创建 MainActivity 类的对象并获取变量的值。

所以在MainActivity.java中是这样的:

public String playerOneContent;
public String playerTwoContent;

@Override
public void onCreate...... //blah blah blah

public void functionWhereYouSetValueofStrings(){
playerOneContent = playerOneEditText.getText().toString();
playerTwoContent = playerTwoEditText.getText().toString();
}

现在,在 GameView.java 类中执行以下操作来获取值:

MainActivity ma = new MainActivity();
playerOneTextView.setText(ma.playerOneContent);
playerTwoTextView.setText(ma.playerTwoContent);

它使用对象来引用 MainActivity.java 中的 public 字段。我相信这应该回答你的问题,并对你有所帮助。

如果没有,请在下面对问题发表评论。

关于java - 如何将 Intent 发送到 gameView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56720027/

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