Furudateのブログ

プログラミングやネットワーク系の知識・技術がメインのブログ。技術メモ帳的な感じになるかと。岩手から発信していきます。

【Android】Shared Preferencesの使い方

こんにちは。

今回は、ログイン情報(ID)や設定情報などの、簡単なデータを保存するのに最適なプリファレンスについて書きたいと思います。

早速、プリファレンスに保存して、その値を読み込むコードを書いてみます。

プリファレンスへのデータ保存

// プリファレンスの準備。今回はキーと値を保存出来るSharedPreferenceを使う。user_data というファイルに保存する
// MODE_PRIVATEでこのアプリだけが使用できるように設定
SharedPreferences pref = this.getSharedPreferences("user_data", Context.MODE_PRIVATE);

// プリファレンスに書き込むためのEditorオブジェクト取得
Editor editor = pref.edit();
// user_id というキーで値を保存
editor.putInt("user_id", userId);
// ここで実際にファイルに書き込む
editor.commit();

プリファレンスからデータ読み込み

SharedPreferences pref = context.getSharedPreferences("user_data", Context.MODE_PRIVATE);
		
// 保存されている値を呼び出し
return pref.getInt("user_id", -1);


以上です。
かなり簡単にできます。

今回はキーと値を保存できる、Shared Preferencesを使いました。
ポイントとしては、まずMODE_PRIVATEのところです。
これは、呼び出したアプリケーションだけをアクセス可能にするというものです。
他にもモードがあり、まとめると以下のようになります。

  • MODE_PRIVATE
    • 呼び出したアプリケーションだけがアクセス可能
  • MODE_WORLD_READABLE
    • 全てのアプリケーションが読み込み可能
  • MODE_WORLD_WRITEABLE
    • 全てのアプリケーションが書き込み可能


そして、値を保存するときや読み込むときなどに、putInt(getInt)を使っています。このメソッドは書き込む値によって変わり、以下の5種類が用意されています。

  • putInt()
  • putLong()
  • putFloat()
  • putString()
  • putBoolean()


プリファレンスから読み込みする際には、恐らく同じコードを複数のActivityに書くと思うので、クラスを作成し、そこにメソッドをまとめてしまったほうが良いかもしれません。

以上です。
それでは。