トップ 差分 一覧 ソース 置換 検索 ヘルプ PDF RSS ログイン

Android アプリのデータの保存

プリファレンス

http://android.roof-balcony.com/shori/strage/preference/

まずは保存時の処理の説明です。
保存するデータの型は、boolean型、float型、int型、long型、String型が使えます。
String型のデータを保存するときは、以下のような感じになります。

1
2
3
4
SharedPreferences pref = getSharedPreferences(“pref”,MODE_WORLD_READABLE|MODE_WORLD_WRITEABLE);
Editor e = pref.edit();
e.putString(“key”, “value”);
e.commit(); 

まずは、getSharedPreferences()メソッドでSharedPreferences型インスタンスを取得します。


getSharedPreferences()の第一引数は、プリファレンスの名前です。
プリファレンス自体に名前を付けるという事です。


getSharedPreferences()の第二引数は共有モードです。以下の値を指定できます。

  • MODE_WORLD_READABLE:他のアプリから読み取り可能
  • MODE_WORLD_WRITEABLE:他のアプリから書込み可能
  • MODE_PRIVATE:そのアプリケーションだけで使用可能

他のアプリから読み取りも書込みも可能にするには、サンプルコードのように論理和で結合させておきます。


次は、SharedPreferencesのedit()メソッドを使って、Editor型インスタンスを取得します。
このEditorインスタンスを通じて、プリファレンスへのデータの書込みを行います。


最後に、Editorのcommit()メソッドを行う事で、実際に保存されます。


PreferenceActivity

http://y-anz-m.blogspot.com/2009/11/android.html
作成した画面の設定項目値とPreferences に自動に同期してくれる。

 画面のXML

1. res の下に xml という名前のフォルダを作成
2. res/xml に pref.xml を作成
3. pref.xml に画面の配置を定義

pref.xml の例

 <?xml version="1.0" encoding="utf-8"?>  
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">  
   <PreferenceCategory android:title="Libraroid Setting">  
     <CheckBoxPreference  
     android:key="checkbox_value"  
     android:title="Setting1"  
     android:summary="sample of checkbox setting" />  
     <EditTextPreference  
     android:key="edittext_value"  
     android:title="Setting2"  
     android:summary="sample of edittext setting"  
     android:dialogTitle="Setting edittext"  
     android:dialogMessage="please set values" />  
     <ListPreference  
     android:key="list_value"  
     android:title="Setting3"  
     android:summary="sample of list setting"  
     android:entries="@array/search_condition"  
     android:entryValues="@array/search_condition_value" />  
     <RingtonePreference  
     android:key="ringtone_value"  
     android:title="Setting4"  
     android:summary="sample of ringtone setting"  
     android:showDefault="true"  
     android:showSilent="true"  
     android:ringtoneType="ringtone" />  
   </PreferenceCategory>  
 </PreferenceScreen>  

各設定タイプのタグには

  • CheckBoxPreference
  • DialogPreference
  • EditTextPreference
  • ListPreference
  • RingtonePreference

パラメータ

 android:defaultValue  
   初期値

 android:dependency
   この Preference が依存する他の Preference の key

 android:enabled
   この Preference が有効かどうか

 android:key
   システムに保存するときの key

 android:layout
   PeferenceActivity 画面内でのこの Preference の layout

 android:order
   Prefernce の順番、小さい方が最初

 android:persistent
   shared preferences に保存するかどうか

 android:selectable
   選択できるかどうか

 android:shouldDisableView
   この Preference が無効のとき、表示を無効にするかどうか

 android:summary
   タイトルの下の文字列、説明を書いたり、選択値を表示する

 android:title
   タイトル

 Activity

1
2
3
4
5
6
7
8
9
10
import android.os.Bundle;  
import android.preference.PreferenceActivity;  

public class PreferenceActivityExample extends PreferenceActivity {  
  @Override  
  public void onCreate(Bundle savedInstanceState){  
    super.onCreate(savedInstanceState);  
    addPreferencesFromResource(R.xml.pref);  
  }  
}  

PreferenceActivity クラスを継承して、setContentView の代わりに
addPreferencesFromResource で pref.xml を読み込む

イベントをキャッチする

http://mitukiii.jp/category/programming/java/

onPreferenceTreeClickメソッドをオーバーライドして、各項目のクリックイベントを取得する。

保存された設定を呼び出す

http://yakinikunotare.boo.jp/orebase/index.php?Android%A1%CA%B3%AB%C8%AF%A1%CB%2F%A4%C1%A4%E7%A4%C3%A4%C8%A4%B7%A4%BF%C0%DF%C4%EA%A4%CE%B1%CA%C2%B3%B2%BD#t4ab5377

1
2
3
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
String account = sharedPreferences.getString("account", "");
String password = sharedPreferences.getString("password", "");

設定にコードから書き込む

1
2
3
4
5
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); 
Editor ed = sp.edit();
ed.putString("account", account);
ed.putString("password", password);
ed.commit();

コミットで書込を確定する

[カテゴリ: プログラミング言語 > Java > Android]



  • Hatenaブックマークに追加
  • livedoorクリップに追加
  • del.icio.usに追加
  • FC2ブックマークに追加

最終更新時間:2011年10月27日 21時29分20秒