如何将意图发送到gameView

时间:2019-06-23 00:01:55

标签: java android android-fragments android-intent

我试图让用户在StartScreen活动中的textEdits中键入什么,以显示在MainActivity中。

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

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获取意图并将其用于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"));

1 个答案:

答案 0 :(得分:0)

不幸的是,在不扩展Activity类的情况下,意图无法在Android中工作。

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

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);

它使用对象来引用public中的MainActivity.java字段。我相信这应该可以回答您的问题并为您提供帮助。

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