使用Intent Extra在Activities之间传递数据时,我会保持相同的值

时间:2012-04-16 13:26:43

标签: android android-intent

在我的游戏中,我试图使用Intent Extra将PlayGame活动的分数传递给Scoreboard活动。 完成游戏后,我会以这种方式进入记分牌:

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

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

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

这是第一次运作正常,但如果我再玩另一场比赛并返回记分牌,我仍然可以从第一场比赛得到分数。

我错过了什么?

4 个答案:

答案 0 :(得分:0)

你缺少调用setIntent()

答案 1 :(得分:0)

试试这个: 如果你回去开始一个新游戏,让你的得分活动结束(

然后它应该正常工作

答案 2 :(得分:0)

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

答案 3 :(得分:0)

接收Bundle值并不需要

getExtra()。 在我的代码中,我曾经像这样收到,

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

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

希望这听起来对你好。