我正在为 Android 制作一个简单的游戏,但是由于我是初学者,有时我会遇到一些基本问题以及代码中的错误。我不知道该代码有什么问题,但当我按后退按钮时,它似乎崩溃了,并且没有将分数从游戏重定向到主菜单。
public void finish(){
Intent returnIntent = new Intent();
returnIntent.putExtra("GAME_SCORE",gameView.getHitCount());
setResult(RESULT_OK, returnIntent);
super.finish();
}
游戏 View :
public int getHitCount(){
return hitCount;
}
和主菜单:
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));
}
}
}
}
最佳答案
据我了解,GameActivity
将用户返回到 mainMenuActivity
,因此首先,java 中的 super
关键字始终排在第一位您不能在 super()
之前放置任何内容,如果游戏 Activity 将您返回到主菜单,则 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
类中
希望这对您有帮助。
关于java - 简单的 Android 游戏中 Intent 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29707675/