0

私は、ボタンをクリックすることでユーザがポイントを得るゲームアクティビティを持っています。私がしたいことは、これらのポイントを主なアクティビティに渡すことです。最初のアクティビティはユーザに表示されます。たとえば、ユーザーはゲームアクティビティに行き、ポイントを取得してアプリケーションを完全に終了します。アプリケーションを再起動すると、主なアクティビティでのポイントの総量が表示されます。1つのアクティビティからデータを取得し、別のアクティビティをアプリに再起動して保存する

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

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

答えて

1

あなたが使いたいのはSharedPreferencesだと思います。彼らはすべての活動からアクセス可能であり、アプリのリニューアル間でデータを保持します。 GameActivityで達成した(そして保存した)新しいデータ/新しいスコアがある場合は、MainActivityでonResume()をチェックインできます。

Here's a guide SharedPreferencesの使い方についてBtw。名前に惑わされないでください。あなたは「嗜好」だけでなく、すべての種類のものを保存することができます。

1

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

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); 
    } 
} 
関連する問題