Help us understand the problem. What is going on with this article?

基本的なSharedPreferencesの使い方

More than 3 years have passed since last update.

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

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

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away