在我的游戏中,我试图使用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");
这是第一次运作正常,但如果我再玩另一场比赛并返回记分牌,我仍然可以从第一场比赛得到分数。
我错过了什么?
答案 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);
它应该适用于您的问题。而且它也不会给你已经收到的价值。
希望这听起来对你好。