Preferences は、ユーザー設定や簡単なゲーム状態の保存など、アプリケーションの小さいデータを簡単に保存するための方法です。 Preferences はキーに文字列を使用し、値には様々なプリミティブ型を使用し、ハッシュマップのように動作します。 あなたのアプリケーションがブラウザ上で動作する場合、データを永続的に保存するにはPreferences を使うしかありません。
Preferences は以下のコードで取得できます:
Preferences prefs = Gdx.app.getPreferences("My Preferences");
アプリケーションでは複数の preferencesを持つことができるので覚えておいてください。各 preferencesにはそれぞれ異なる名前を付けます。
Preferences の編集は Java Mapの編集と同じくらい簡単です:
prefs.putString("name", "Donald Duck"); String name = prefs.getString("name", "No name stored"); prefs.putBoolean("soundOn", true); prefs.putInteger("highscore", 10);
getter メソッドには、既定値を引数として渡すやり方と渡さないやり方の二つがあるので覚えておいてください。 preferencesで指定されたキーの値がない場合は、既定値が戻り値として返されます。
明示的にflush()
メソッドを実行した場合のみ、preferences インスタンスへの変更が反映されます。
// bulk update your preferences prefs.flush();
Windowsと Linuxと OS Xでは、 preferences はユーザーのホームディレクトリの xml ファイルに保存されます。
OS | Preferences の保存場所 |
---|---|
Windows | %UserProfile%/.prefs/My Preferences |
Linux and OS X | ~/.prefs/My Preferences |
Gdx.app.getPreferences()
メソッドに引数として渡した文字列がこのファイルの名前になります。
保存場所は、テスト時にpreferences の手動での作成や削除が成功したかを確認する場合に必要なので覚えておいてください。
Androidでは、システムの SharedPreferences クラスが使用されます。 つまり、アプリをアップデートしてもpreferences は維持されますが、アプリをアンインストールした場合には削除されます。
iOSでは、NSMutableDictionary を使った場合このファイルに書き込みが行われます。 [javadocs参照]