LoginSignup
11
10

More than 5 years have passed since last update.

kotlin でandroid入門 Preferences

Posted at

アンドロイドでデータを保存する方法は
1. プリファレンス(Preferences)
2. 内部ストレージ
3. ユーザー設定
4. データベース
5. 外部ストレージ

プリファレンス(Preferences)

アプリローカルなキーと値がペアになった端末のローカルなデータ
(自分の認識。基本どこにデータがあるか関与していないデータ)

キー

キーと値のペアは、1つのプリファレンス(ファイルのイメージ)に保存され
1アプリに複数のプリファレンスを持つことが可能(なのか?)
プリファレンスもキーでアクセスする
val でも string.xml で string name で宣言しても使用可能でした

プリファレンスの呼び出し

最初はプリファレンスそのものを

    val prefs = getSharedPreferences(PREFERENCES_KEY, AppCompatActivity.MODE_PRIVATE)

onCreate()外でも使いたいので遅延初期化を使って

    lateinit var prefs : SharedPreferences
    override fun onCreate(savedInstanceState: Bundle?) {
        // string nameの場合を例に
        prefs = getSharedPreferences(getString(R.string.preferences_key), AppCompatActivity.MODE_PRIVATE)

としておくと使いやすかったです

値の取り出し

値の型別に getString() / getInt() / getBoolean()
などがあり、型に合わせ使用する

    // getSharedPreferences()済のプリファレンスからDATA1_KEYの文字列値を取得
    //  getxxx()の第2引数は、値がなかった場合のデフォルト
    val memo : String = prefs.getString(DATA1_KEY, "memo")

memoに保存されている文字列が入ります
保存されていなかった場合は "memo" が

値の保存

取り出し時と同じ用に型に応じたメゾットがあるので
putString() / putInt() / putBoolean()

    val msgData : String = "値"
    val e : SharedPreferences.Editor = prefs.edit()
    e.putString(getString(R.string.preferences_key_data1) , msgData)
    e.apply()

で保存できます

11
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10