0

ユーザーがボタンをクリックしてポイントを獲得するゲーム アクティビティがあります。私がやりたいことは、これらのポイントをメイン アクティビティ、つまりユーザーが最初に目にするアクティビティに渡すことです。たとえば、ユーザーはゲーム アクティビティに移動し、いくつかのポイントを取得して、アプリケーションを完全に終了します。アプリケーションを再起動すると、メインのアクティビティで獲得したポイントの合計が表示されます。

メイン アクティビティ中にゲーム アクティビティからデータを取得するために startActivityForResults を使用していますが、何か不足しています。アプリが再起動されたときに保存されたポイントを取得できるように、ゲーム アクティビティにポイントを保存する必要があると思います。私は正しい方向に向かっていますか?また、その場合どうすればポイントを貯められますか?

私が持っていたもう 1 つのアイデアは、ゲーム アクティビティで、ユーザーがポイントを取得すると、ポイントがすぐにメイン アクティビティに送信され、そこに保存されるというものでした。ユーザーがアプリケーションを再起動すると、メイン アクティビティはポイントを見つけるためにゲーム アクティビティに移動する必要はありません。ポイントは既にメイン アクティビティに保存されています。この方法は同じですか、より良いですか、それとも悪いですか?

4

2 に答える 2

1

あなたが使いたいのはSharedPreferencesだと思います。すべてのアクティビティからアクセスでき、アプリの再起動後もデータを保持します。MainActivity では、GameActivity でonResume()ユーザーが達成した (そして保存した) 新しいデータ/新しいスコアがあるかどうかを確認できます。

SharedPreferencesの使用方法に関するガイドを次に示します。ところで。名前にだまされないでください。「設定」だけでなく、あらゆる種類のものを保存できます。

于 2016-11-26T21:29:34.433 に答える
1

これを使用する必要はありませんstartActivityForResultSharedPrefrences最も簡単な解決策は、両方のアクティビティからアクセスできるファイルに現在のスコアを保存することです。

class ActivityOne extends Activity {
    private void saveUserScore(int score) {
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
        prefs.edit().putInt("score", score).commit();
    }
}

class ActivityTwo extends Activity {
    private int getUserScore() {
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
        return prefs.getInt("score", 0);
    }
}
于 2016-11-26T21:30:00.313 に答える