0

在我的游戏中,我试图使用 Intent Extra 将分数从 PlayGame 活动传递到记分牌活动。比赛结束后,我以这种方式进入记分牌:

Intent intentScoreboard = new Intent(getApplicationContext(), Scoreboard.class);
intentScoreboard.putExtra("com.example.game.SCORE", score_counter);
startActivity(intentScoreboard);

然后在记分板类中,我在 onResume() 方法中检索它,如下所示:

Bundle b = getIntent().getExtras();
int score = b.getInt("com.example.game.SCORE");

这第一次很好,但如果我再玩另一场比赛并完成返回记分牌,我仍然会从第一场比赛中获得分数。

我错过了什么?

4

4 回答 4

0

你错过了调用 setIntent()

于 2012-04-16T13:29:30.390 回答
0

试试这个:如果你回来开始新游戏,让你的得分活动做一个finish()

那么它应该可以工作

于 2012-04-16T13:35:43.420 回答
0

getIntent 传递启动活动的意图。如果活动恢复,您将不会获得最近收到的意图。请参阅此处了解解决方案:https ://stackoverflow.com/a/6838082/1127492

于 2012-04-16T13:37:20.993 回答
0

BundlegetExtra()接收值不需要太多。在我的代码中,我曾经收到过这样的信息,

int score = getIntent().getIntExtra("com.example.game.SCORE",defaultValue);

它应该适用于您的问题。而且它也不会给你已经收到的值。

希望这对你来说听起来不错,伙计。

于 2012-04-16T13:48:00.427 回答