我正在为Android制作一个简单的游戏,但由于我有点初学者,有时候我的代码中存在一些基本的东西和错误的问题。我不知道该代码有什么问题但是当我按下后退键并且没有将分数从游戏重定向到主菜单时它似乎崩溃了。
public void finish(){
Intent returnIntent = new Intent();
returnIntent.putExtra("GAME_SCORE",gameView.getHitCount());
setResult(RESULT_OK, returnIntent);
super.finish();
}
GameView:
public int getHitCount(){
return hitCount;
}
和MainMenu:
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));
}
}
}
}
答案 0 :(得分:2)
从我所理解的情况来看,GameActivity
会将用户返回到mainMenuActivity
所以首先,java中的super
关键字始终是首先你不能只是在super()
之前放置任何内容,如果游戏活动返回主菜单,则onFinish()
方法必须为:
super.finish();
Intent returnIntent = new Intent(GameActivity.this,MainMenu.class);
returnIntent.putExtra("GAME_SCORE",gameView.getHitCount());
setResult(RESULT_OK, returnIntent);
并获得游戏分数,如果其整数然后使用:
Intent intent = getIntent();
int intValue = intent.getIntExtra("GAME_SCORE", 0);
在您的MainMenu
课程中
希望这会对你有所帮助。