ユーザの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と名付けられます。
|
【用語解説】
XML
HTMLと同じような言語ですが、
すべての型の複雑なデータ構造を
送信するための設計ができる
ファイル型式。
オブジェクト
ある手続きを持った
データアイテムで、
他の手続きと関連づけされるもの
metaタグ
ウェブページに与える
情報の宣言につかわれ
検索エンジン・ウェブアプリ
などにウェブページの内容を
伝える役目をする。
metaタグの内容は
ページ内に表示されない。
コンストラクタ
オブジェクト指向
プログラミングで使われ
新しいオブジェクトが
作られ時に呼び出される
メソッドのこと。
クラス
オブジェクト指向
プログラミングでの
オブジェクトの型
オブジェクト指向プログラミング
プログラミングの
方式のことで、
プログラマはデータ型を
定義できるだけでなく
自動的にデータ型と
メソッドを関連付け
できる
アクティビティ
Androidにおける
アクティビティは
Androidアプリの画面に
相当するもの
ボタンやウェブページ
など表示されている
すべてのもののこと。
view
Androidのアプリを開発する
上で使う部品のことで、
トリガボタン・イメージボタン
チェックボックスなどのこと。
UI
ユーザインターフェースのこと。
Bind(バインド)
シンボルとデータを
関連させるため
または、データの一片と
他のものを関連させること。
以下は例。
・変数に値を入れる。
(変数の初期化)
・特定のEthernetポートと
ネットワークプロトコルを
関連付けする。
・Javaの変数のセット上に
XML文書を配置すること。
または、ほかの
プログラミング言語でも。
|