LoginSignup
89
93

More than 5 years have passed since last update.

Preference使用方法[Android]

Posted at

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

89
93
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
89
93