基本的なSharedPreferencesの使い方

  • 84
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

 SharedPreferenceの基本

SharedPreferencesはアプリの設定データをデバイス内に保存するための仕組み。XML形式で保存されます。
(要するにAcitivityが破棄されてもCommitさえされていれば保存されている、ということ)
キー・バリュー形式で保存され、主にテキストや数値の保存を得意とします。
(Gsonを使うことで無理やり(?)オブジェクトなどのデータの保存も可能にすることができます。後半に解説)

基本的には String int long float boolean を保存します。

インスタンスの取得

まずはインスタンスを取得します。
取得には Context#getSharedPreferences()メソッドを用います。

sharedpreferences.java
SharedPreferences data = getSharedPreferences("DataSave", Context.MODE_PRIVATE);

GetSharedPreferences("設定データの名前",ファイル操作のモード)

ファイル操作のモードは二つあります。
・Context.MODE_PRIVATE
・Context.MODE_MULTI_PROCESS

そのままの意味ですが「Context.MODE_PRIVATE」はそのアプリないでのみアクセス可能なデータの生成を、「Context.MODE_MULTI_PROCESS」は複数のプロセスが作ったデータに対してアクセスが可能な状態なデータを作ります。

データの保存方法

sharedpreferences.java
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()します。これでデータを反映させています。

 データの読み出し

SharedPrefererences.java
SharedPreferences data = getSharedPreferences("DataSave", Context.MODE_PRIVATE);
int Level = data.getInt("LevelSave",1 );

data.getInt("保存データの名前","何も入っていないとき初期化する値");

以上で基本的な動きは終わります。