ウェブアプリケーション,インジェクション,コマンドインジェクション

Androidアプリ開発 データを持続させる

ユーザのpreferencesをセーブとロード

Saving and Loading User Preferences

AndroidはSharedPreferenceオブジェクトをシンプルな
アプリケーションデータの保存を助けるために提供してます。
SharedPreferencesオブジェクトを使うことで、
キー/値のペアを使う欲しいデータを保存できます。
保存したいデータを示すキーを指定して、キーと値の両方を
自動的にXMLファイルに保存していきます。
この特徴はAndroidではshared preferencesとして知られています。
SharedPreferencesオブジェクトを使うために、
SharedPreferenceタイプの変数を作ります。

package net.learn2develop.preferences;

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;

public class MainActivity extends Activity{
  SharedPreferences prefs;
  String prefName = "MyPref";

  @Override
  public void onCreate(Bundle savedInstanceState){
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
  }
}

上のコードはSharedPreferencesオブジェクトで後で作られる
優先ファイルの名前を保持する文字変数も作りました。
SharedPreferencesオブジェクトを使っていく前に、
getSharedPreferences()メソッドを使い、
SharedPreferencesオブジェクトのインスタンスを取得し、
オペレーティングモードと同じように(初期設定ではMODE_PRIVATE)
優先ファイルの名前をSharedPreferencesオブジェクトの
インスタンスに渡します。

@Override
public void onCreate(Bundle savedInstanceState){
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  //---get the SharedPreferences object---
  prefs = getSharedPreferences(prefName, MODE_PRIVATE);
}

SharedPreferencesオブジェクトにいくつかの値を保存するためには、
SharedPreferences.Editorクラスのインスタンスを作る必要があり、
そのインスタンスの値をバッチに加えることができます。

//---get the SharedPreferences object---
prefs = getSharedPreferences(prefName, MODE_PRIVATE);

SharedPreferences.Editor editor = prefs.edit();

Editorオブジェクトにキー/値のペアをそのいろんなメソッドを使って
加えることができます。
この時に使うメソッドは保存しているデータのタイプによって
使い分けます。

SharedPreferences.Editor editor = prefs.edit();

//---save some values using the SharedPreferences object---
editor.putFloat("temperature",85);
editor.putBoolean("authenticated",true);
editor.putString("usename", "ユーザ名");

commit()メソッドを使い変更をSharedPreferencesオブジェクトに
引渡すことで永続的なストレージに値を保存することができます。

//---save some values using the SharedPreferences object---
editor.putFloat("temperature",85);
editor.putBoolean("authenticated",true);
editor.putString("username", "ユーザ名");

//---saves the values---
editor.commit();

SharedPreferencesオブジェクトからデータを検索するのは同じで、
SharedPreferencesオブジェクトのインスタンスを取得し、
検索するデータに合ったタイプのメソッドを使い、キーを元に値を
得ることができます。

public void readPrefValues(){
  prefs = getSharedPreferences(prefName, MODE_PRIVATE);
  float temperature = prefs.getFloat("temperature", 50);
  boolean authenticated = prefs.getBoolean("authenticated", false);
  String username = prefs.getString("username", "");
}
@Override
public void onCreate(Bundle savedInstanceState){
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  //---get the SharedPreferences object---
  prefs = getSharedPrefences(prefName,MODE_PRIVATE);

  SharedPreferences.Editor editor = prefs.edit();

  //---save some values using the SharedPreferences object---
  editor.putFloat("temperature", 85);
  editor.putBoolean("authenticated", true);
  editor.putString("username", "ユーザ名");

  //---saves the values---
  editor.commit();

  readPrefValue();
}

それぞれのメソッドでは、検索していって見つけられなかった
キーイベントの初期値を指定できる様になっていることに注目します。
キー/値のペアはSharedPreferencesオブジェクトで保存され、
/data/data/<パッケージ名>/shared_prefsフォルダに
保存さていき、MyPref.xmlと名付けられます。

ホーム
便利堂ロゴ
inserted by FC2 system