传递意图
Passing an Intent
我有一个简单的游戏,您可以在其中单击一个精灵来增加点击计数器。游戏结束后,我希望将比分从游戏开始时的主菜单传递到主菜单,但无法使其正常工作。这是我针对三种不同 类 的代码,我不确定要在方法中放入什么。
游戏Activity-
public void finish(){
Intent returnIntent = new Intent();
returnIntent.putExtra("GAME_SCORE",gameView.getHitCount());
setResult(RESULT_OK, returnIntent);
super.finish();
}
游戏视角-
public String getHitCount() {
String Score = Integer.toString(hitCount);
return Score;
/*Intent returnIntent = null;
String Result = returnIntent.getExtras().getString("GAME_SCORE");
TextView GameScore = (TextView)findViewById(R.id.tvGuessGame);
GameScore.setText(Result);
return Result;*/
}
主菜单-
protected void onActivityResult(int requestCode, int resultCode, Intent retIntent) {
// Check which request we're responding to
if (requestCode == SCORE_REQUEST_CODE) {
// Make sure the request was successful
if (resultCode == RESULT_OK) {
if (retIntent.hasExtra("GAME_SCORE")) {
int scoreFromGame = retIntent.getExtras().getInt("GAME_SCORE");
tvScore.setText(Integer.toString(scoreFromGame));
}
}
}
}
游戏得分是字符串,但在 onActivityResult 中获取为 int
更改您的 return getHitCount() 方法类型。
public int getHitCount(){
return hitCount;
}
在 onActivityResult 中:
tvScore.setText(""+Integer.toString(scoreFromGame));
我有一个简单的游戏,您可以在其中单击一个精灵来增加点击计数器。游戏结束后,我希望将比分从游戏开始时的主菜单传递到主菜单,但无法使其正常工作。这是我针对三种不同 类 的代码,我不确定要在方法中放入什么。
游戏Activity-
public void finish(){
Intent returnIntent = new Intent();
returnIntent.putExtra("GAME_SCORE",gameView.getHitCount());
setResult(RESULT_OK, returnIntent);
super.finish();
}
游戏视角-
public String getHitCount() {
String Score = Integer.toString(hitCount);
return Score;
/*Intent returnIntent = null;
String Result = returnIntent.getExtras().getString("GAME_SCORE");
TextView GameScore = (TextView)findViewById(R.id.tvGuessGame);
GameScore.setText(Result);
return Result;*/
}
主菜单-
protected void onActivityResult(int requestCode, int resultCode, Intent retIntent) {
// Check which request we're responding to
if (requestCode == SCORE_REQUEST_CODE) {
// Make sure the request was successful
if (resultCode == RESULT_OK) {
if (retIntent.hasExtra("GAME_SCORE")) {
int scoreFromGame = retIntent.getExtras().getInt("GAME_SCORE");
tvScore.setText(Integer.toString(scoreFromGame));
}
}
}
}
游戏得分是字符串,但在 onActivityResult 中获取为 int
更改您的 return getHitCount() 方法类型。
public int getHitCount(){
return hitCount; }
在 onActivityResult 中:
tvScore.setText(""+Integer.toString(scoreFromGame));