プリミティブな型でデータを保存することは少ないかと思うが、
- 保存できる型は、
boolean
float
int
long
String - データの格納先は「/data/data/パッケージ名/shared_prefs/ファイル名.xml」
- SharedPreferencesのインスタンスはgetSharedPreferencesで取得する。
- getSharedPreferencesメソッドの第1引数は、ファイル名。
下記のサンプルの場合、「sample.xml」がファイル名となる。 - getSharedPreferencesメソッドの第2引数は、プリファレンスへのアクセスモード。
MODE_PRIVATE:他のアプリケーションからはアクセスできない。
MODE_WORLD_READABLE:他のアプリケーションからの読み込みを許可する。
MODE_WORLD_WRITEABLE:他のアプリケーションからの書き込みを許可する。 - プリファレンスへの読み書きはSharedPreferences.Editorを使う。
package net.kuttya.sharedpreferencessample; import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.content.SharedPreferences; import android.view.Menu; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 初期化 SharedPreferences preferences = getSharedPreferences("sample", Context.MODE_PRIVATE); SharedPreferences.Editor editor = preferences.edit(); // 書き込み // 第1引数はキー、第2引数は書き込む値 editor.putBoolean("boolkey", true); editor.putFloat("floatkey", 3.5f); editor.putInt("intkey", 7); editor.putLong("longkey", 9); editor.putString("Stringkey", "文字列"); editor.commit(); // 読み込み // 第1引数はキー、第2引数はデフォルト値 boolean b = preferences.getBoolean("boolkey", false); float f = preferences.getFloat("floatkey", 1.1f); int i = preferences.getInt("intkey", 1); long l = preferences.getLong("longkey", 5); String str = preferences.getString("Stringkey", ""); } }