154
136

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

基本的なSharedPreferencesの使い方

Last updated at Posted at 2014-12-01

# 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("保存データの名前","何も入っていないとき初期化する値");

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

154
136
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
154
136

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?