2016-05-22 8 views
0

共有設定を使用して、作成したゲームの最高得点となるintを保存しています。問題は、それがまったく格納されないということです。私は私のデバイスを再起動する/アプリケーションをシャットアップまたはハイスコアがなくなったもの。どうしたの?共有設定が意図したとおりに動作しない

ストア

SharedPreferences sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE); 
SharedPreferences.Editor editor = sp.edit(); 
editor.putInt("your_int_key", highScore); 
editor.commit(); 

あなたは私がこれ以上のコードを追加したい場合は私に知らせて

SharedPreferences sp1 = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE); 
int highScoreSaved = sp1.getInt("your_int_key", 0); 

を取得します。ありがとう! SharedPreferenceインスタンスを取得するとき

+0

データを保存するのと同じクラスのデータを取得していますか? –

答えて

0

は、これを使用してみてください:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this /* Current context */); 

をので、キーと値のペアは、あなたがそれに渡すどんな状況、アプリケーション内のすべての活動を共有するデフォルトのファイルに格納されます。

ファイルの既定のインスタンスを使用したくない場合は、あなたはちょうどそれがアプリケーション・コンテキストを使用するためにあなたのコードを編集することができます。より柔軟であるため、

SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences("prefs_file", Context.MODE_PRIVATE); 

通常、私は最初のアプローチを好みますシングルインスタンスファイルで使いやすい。

+1

はい、これは機能します。私はあなたの第2の選択肢を使用して、わかりやすいことがわかりました。ありがとう、これは本当に私を迷惑にしていた! –

関連する問題