0

私のゲームでは、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

4 に答える 4

0

setIntent() の呼び出しがありません

于 2012-04-16T13:29:30.390 に答える
0

getIntent は、アクティビティを開始したインテントを配信します。アクティビティが再開された場合、最近受信したインテントは取得されません。解決策については、こちらをご覧ください: https://stackoverflow.com/a/6838082/1127492

于 2012-04-16T13:37:20.993 に答える
0

これを試してみてください: 新しいゲームを開始するために戻ったら、スコア アクティビティに finish() を実行させます

それは動作するはずです

于 2012-04-16T13:35:43.420 に答える
0

BundlegetExtra()値を受け取るのにあまり必要ありません。私のコードでは、このように受け取っていましたが、

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

それはあなたの問題のために働くはずです。また、すでに受け取った値は提供されません。

それがあなたにとって良い音であることを願っています。

于 2012-04-16T13:48:00.427 に答える