diadia

興味があることをやってみる。自分のメモを残しておきます。

SharedPreferencesの使い方

使い方

まずSharedPreferencesインスタンスを生成する。そしてインスタンスのメソッドを使って内容を書き込んだり、読み込んだりする。

android.content.SharedPreferences

SharedPreferencesインスタンスの生成

val sp: SharedPreferences = getSharedPreferences("SessionManage", Context.MODE_PRIVATE)

第一引数は、おそらくxmlのファイル名となる。このファイルのデータの読み書きがインスタンスのメソッドを通じて実行される。

第二引数は、書き込みの権限を設定していると思われる。 MODE_PRIVATEは"このアプリからのみ読み書き可"を意味する。

また、getSharedPreferences()はContext#getSharedPreferencesであるのでFragment内で呼び出すにはまずContextオブジェクトを経由させrこと。

データを読み込む

  • Stringデータを読み込む
val last_account:String? = sp.getString("last_account", null)

インスタンスにgetString()メソッドを使ってデータの読み込みを行う。

第一引数がkeyとなっており、key に対応するvalueが返される。仮にkeyがない場合にはエラーが発生するのではなく、第二引数で定めた値が返される。

データを書き込む

val editor = sp.edit()
editor.putString("last_account", "chiaki").apply()

SharedPreferencesインスタンスにedit()メソッドを使わないと書き込みができない。

edit()メソッドで返された値には、SharedPreferencesインスタンスにデータを格納することができるメソッドを有する。

android.content.SharedPreferences.Editor

Editor.putString()メソッドの第一引数はkeyであり、第二引数が値である。 またメソッド実行後にapply()メソッドやcommit()メソッドを使い変更をコミットする事が必要である。

メソッドは以下の通りである。

  • putBoolean(key: String!, value: Boolean)
  • putFloat(key: String!, value: Float)
  • putInt(key: String!, value: Int)
  • putLong(key: String!, value: Long)
  • putString(key: String!, value: String?)
  • putStringSet(key: String!, values: MutableSet<String!>?)
  • remove(key: String!)

参考

[Android] データを保存し Android Studio で確認 SharedPreferences

関連記事

JetPack Securityについて調べる

SharedPreferencesのxmlファイルを直接見る - diadia