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

Preference使用方法[Android]

More than 5 years have passed since last update.

Preferenceの基本

 データ、保存したいですよね。
 データの簡単な保存方法にプリファレンスというものがあります。
 プリファレンスは、 キーと値の組み合わせでデータを保存する 方法です。1つのキーに1つの値を保存、シンプルですね。これはアプリの設定情報の保存などに向いているモノです。大量のデータや複雑なものはデータベースなど、別の保存方法を選びましょ。

 アプリは複数のプリファレンスを持つことができます。また、使えるデータ型は以下の5つに限られます。

  • boolean型
  • float型
  • int型
  • long型
  • String型

Preferenceへのアクセス

 まずは、プリファレンスにアクセスです。
 contentクラスのgetSharedPreferences()を用いて、 SharedPreferences オブジェクトを取得です。

SharedPreferences prefer = getSharedOreferences("ファイル名", モード)

 ここで、ファイル名は保存先のファイル名です。モードは3つあり、その中から適したものを選びましょう。

MODE アクセス権
MODE_PRIVATE 他のアプリからアクセス不可
MODE_WPRLD_READABLE 他のアプリから読み込み可能
MODE_WORLD_WRITEABLE 他のアプリから書き込み可能

 ただし、保存先のファイル名とアクティビティ名が同じ場合に限り、getPreferences()が使え、こちらは引数がモードのみでオッケーです。

Preferenceの保存

 保存には Editor クラスを用います。
 edit()でオブジェクト取得、保存する値がint型の場合、putInt()でキーと値を保存、commit()で実際にファイルに書き込むという流れです。

Editor editor = pref.edit();
editor.putInt("id", userId);
editor.commit();

Preferenceの読み込み

読み込みでは、SharedPreferenceseオブジェクトを取得後、値をgetInt()等のメソッドでキーを与えて値を呼び出す流れです。

SharedPreferences pref = getSharedPreferences("user_data", MODE_PRIVATE);

int useId = pref.getInt("id", 10001);

 getInt()の第1引数はキー、第2引数は デフォルト値 となります。なにも保存してない場合に呼び出された時にその値を返します。

Preferenceの削除

特定のキーを削除

 特定のキーと値のデータを削除する場合は、Editorクラスのremove()を用います。引数に、String型のキーを与えます。この場合も、次にcommit()をすることで実際の削除が行われます。

すべてのキーを削除

 複数のデータを保存した後に、まとめて削除したい場合は、clear()を用います。こちらは引数なさいで一気に。さようなら。

参考

SharedPreferences | Android Developers

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