Little Strange Software

スマホアプリの開発を行う LittleStrangeSoftware のブログです。

SharedPreferencesでお手軽データ保存!

 どうも!LSSです!

 

 今回は、

  • SQLiteとかを使うよりもよっぽど簡単に、
  • アプリのデータを保存できて、
  • アプリ終了後も再度立ち上げると、覚えていてくれる、

 そんなSharedPreferencesについて、自分なりにまとめてみたいと思います。

 

 

ぶっちゃけ、覚える必要があるのは6つの文だけ!

 6つの文、内訳は、宣言2つ、読み込み1つ、書き込み3つ、です。

 宣言も1回でやってしまえるんですが、lateinitで名前だけ宣言、onCreate内で内容を宣言、としたほうが使い勝手が良さそうで。

 

 

 

 

lateinit var prf:SharedPreferences

宣言その1、書くのはMainActivityとかのしょっぱな(onCreateなどに属さない部分)
prfは任意の名前、で、prfプリファレンスオブジェクトとして使いますよ、
という宣言です。
prf」と「SharedPreferences」の間が=(イコール)ではなく:(コロン)なのが要注意ですね。

 

 

 

 

prf=getSharedPreferences("DATAPREF", Context.MODE_PRIVATE)

宣言その2、書くのはonCreate()など最初に実行される部分。
ここで”DATAPREF”もまた任意の名前です。

prfは先にlateinitで宣言済みなので、ここでvalとかvarとかつけてしまうと動作しないのも要注意かと。(実際やっちゃいました^^;)

 

 

 

 

 

intdata1=prf.getInt("intkey1",0)

読み込む時はこう。

 

intdata1…任意の名前、この場合Int型の変数。
"intkey1"…任意の名前、SharedPreferences内のDATAPREFというデータセットに保存した「キー、値」のペアの内、キーに当たる部分。
0…任意のInt値。キー"intkey1"が存在しなかった場合に、代わりに取り出される値。

 

で、上記1文を実行すると、"intkey1"をキーとして保存された値が、intdata1というInt型変数に代入されます。まだ保存されていないとかで取り出せない時は、後ろに書いた値(この場合0)が、しれっとintdata1に代入されます。

 

 

 

 

 

 

val prfe=prf.edit()
prfe.putInt("intkei1",intdata1)
prfe.apply()

 書き込む時はこう。3行、書いていますが、1行目は書き込みのためのeditオブジェクトの宣言、3行目は設定した書き込みの実行で、2行目が書き込み内容そのものになります。

 

prfe…任意の名前、prfを書き込み用として扱うオブジェクト。

"intkey1"…読み込みの時と同様に任意の名前の、保存するキー。

intdata1…任意の名前の変数。ここはキーに対応する値を与える部分。 

 

 保存するデータが複数種ある時は、2行目だけが増えて、1行目と3行目はその最初と最後にだけ書けばOK、な感じです。

 

 

 

 

  だいぶ駆け足な感じで書いてしまいました。

  後日、実践編って感じで、しれっと使ってみたいと思いますw

 

 ではまた!次回もよろしくです!!