# SharedPreferenceの基本
SharedPreferencesはアプリの設定データをデバイス内に保存するための仕組み。XML形式で保存されます。
(要するにAcitivityが破棄されてもCommitさえされていれば保存されている、ということ)
キー・バリュー形式で保存され、主にテキストや数値の保存を得意とします。
(Gsonを使うことで無理やり(?)オブジェクトなどのデータの保存も可能にすることができます。後半に解説)
基本的には String int long float boolean を保存します。
インスタンスの取得
まずはインスタンスを取得します。
取得には Context#getSharedPreferences()メソッドを用います。
SharedPreferences data = getSharedPreferences("DataSave", Context.MODE_PRIVATE);
GetSharedPreferences("設定データの名前",ファイル操作のモード)
ファイル操作のモードは二つあります。
・Context.MODE_PRIVATE
・Context.MODE_MULTI_PROCESS
そのままの意味ですが「Context.MODE_PRIVATE」はそのアプリないでのみアクセス可能なデータの生成を、「Context.MODE_MULTI_PROCESS」は複数のプロセスが作ったデータに対してアクセスが可能な状態なデータを作ります。
###データの保存方法
SharedPreferences data = getSharedPreferences("DataSave", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = data.edit();
editor.putInt("LevelSave", 1);
editor.apply();
今回の処理を上から順に説明します。
・インスタンスの取得をまず行う。(今回はContext.MODE_PRIVATEです。)
・SharedPreferences.Editorオブジェクトを取得。
これらのオブジェクトには
・PutInt
・PutString
...etc
などのメソッドを使ってデータの保存をすることができます。
今回は"LevelSave"に1を保存しています。もちろん変数も使えます。
・そしてapply()します。これでデータを反映させています。
### データの読み出し
SharedPreferences data = getSharedPreferences("DataSave", Context.MODE_PRIVATE);
int Level = data.getInt("LevelSave",1 );
data.getInt("保存データの名前","何も入っていないとき初期化する値");
以上で基本的な動きは終わります。