我试图让用户在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"));
答案 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
字段。我相信这应该可以回答您的问题并为您提供帮助。
如果没有,请对以下问题发表评论。