FC2ブログ
ヽ|∵|ゝ(Fantom) の 開発blog? ホーム » Android »【Android】【Java】Preference 機能を使って設定データを読み込み・保存する

【Android】【Java】Preference 機能を使って設定データを読み込み・保存する  


 ついでに、これまでの「テキストファイルの読み込み・書き込み」とは少し違うのだが、Android には設定データなど、「キーと値」のペアで構成された、小さなデータを読み書きできる Preference(プリファレンス)という機能がある。簡単なものなら、この Preference 機能を使った方が、テキストファイルの読み書きよりも簡単にできるので、汎用性は無いが、覚えておいても損はないだろう。同じようなものがいくつかあるので、用途によって使い分けるのが良い。

 簡単な分類や違いは次の通り。

クラス名メソッド名概要保存ファイルパス
ActivitygetPreferences()Activity 固有の設定値を記録する。ファイル名はアクティビティ名固定。/data/data/[パッケージ名]/shared_prefs/[Activity名].xml
ContextgetSharedPreferences()アプリ固有の設定値を記録する。ファイル名は引数で自由に決められる。/data/data/[パッケージ名]/shared_prefs/[引数の名前].xml
PreferenceManagergetDefaultSharedPreferences()アプリ固有の設定値を記録する。ファイル名は固定。
※テンプレートの「SettingsActivity」(PreferenceActivity)等はこれ。
/data/data/[パッケージ名]/shared_prefs/[パッケージ名]_preference.xml

 用途の使い分けは、ちょっとした保存なら、PreferenceManager クラスの getDefaultSharedPreferences() で、細かくファイルを分けて保存したいなら、Context クラスの getSharedPreferences() あたりを使うと良いかも知れない。



■Activity 固有の設定データを読み込む[Activity クラス getPreferences()]
//Activity 固有の設定データを読み込む(Activity クラス)
//ファイルは "/data/data/[パッケージ名]/shared_prefs/[Activity名].xml" になる

SharedPreferences pref = getPreferences(MODE_PRIVATE);
String str = pref.getString("str", "defValue"); //読み込み
int val = pref.getInt("val", -1); //読み込み
System.out.println("str = " + str);
System.out.println("val = " + val);

■Activity 固有の設定データを保存する[Activity クラス getPreferences()]
//Activity 固有の設定データを保存する(Activity クラス)
//ファイルは "/data/data/[パッケージ名]/shared_prefs/[Activity名].xml" になる

SharedPreferences pref = getPreferences(MODE_PRIVATE);
String str = "あいうえお"; //保存値
int val = 100; //保存値
SharedPreferences.Editor editor = pref.edit();
editor.putString("str", str);
editor.putInt("val", val);
editor.commit(); //ここで保存




■アプリ固有の設定データを読み込む[Context クラス getSharedPreferences()]
//アプリ固有の設定データを読み込む(Context クラス)
//ファイルは "/data/data/[パッケージ名]/shared_prefs/[引数の名前].xml" になる

SharedPreferences pref = getSharedPreferences("name", MODE_PRIVATE);
String str = pref.getString("str", "defValue"); //読み込み
int val = pref.getInt("val", -1); //読み込み
System.out.println("str = " + str);
System.out.println("val = " + val);

■アプリ固有の設定データを保存する[Context クラス getSharedPreferences()]
//アプリ固有の設定データを保存する(Context クラス)
//ファイルは "/data/data/[パッケージ名]/shared_prefs/[引数の名前].xml" になる

SharedPreferences pref = getSharedPreferences("name", MODE_PRIVATE);
String str = "あいうえお"; //保存値
int val = 100; //保存値
SharedPreferences.Editor editor = pref.edit();
editor.putString("str", str);
editor.putInt("val", val);
editor.commit(); //ここで保存




■アプリ固有の設定データを読み込む[PreferenceManager クラス getDefaultSharedPreferences()]
//アプリ固有の設定データを読み込む(PreferenceManager クラス)
//ファイルは "/data/data/[パッケージ名]/shared_prefs/[パッケージ名]_preference.xml" になる

SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this); //this は Activity 等の Context
String str = pref.getString("str", "defValue"); //読み込み
int val = pref.getInt("val", -1); //読み込み
System.out.println("str = " + str);
System.out.println("val = " + val);

■アプリ固有の設定データを保存する[PreferenceManager クラス getDefaultSharedPreferences()]
//アプリ固有の設定データを保存する(PreferenceManager クラス)
//ファイルは "/data/data/[パッケージ名]/shared_prefs/[パッケージ名]_preference.xml" になる

SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this); //this は Activity 等の Context
String str = "あいうえお"; //保存値
int val = 100; //保存値
SharedPreferences.Editor editor = pref.edit();
editor.putString("str", str);
editor.putInt("val", val);
editor.commit(); //ここで保存




 使い方はすべて同じ。中身は xml 形式ではあるが、テキストファイルなので、DDMS を使って [pull] でローカルに落とし、覗くこともできる。

●保存された xml ファイル内容
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="str">あいうえお</string>
<int name="val" value="100" />
</map>


 テキストファイルの読み込みや保存などのページは→こちら





(関連記事)
【Android】res/raw リソースフォルダからテキストファイルを読み込む
【Android】assets フォルダからテキストファイルを読み込む
【Android】内部ストレージからテキストファイルを読み込む
【Android】内部ストレージにテキストファイルを保存する
【Android】SDカードからテキストファイルを読み込む
【Android】SDカードにテキストファイルを保存する
【汎用】ストリームからテキストファイルを読み込む(ストリームから読み込み、テキストエンコードして返す)
【汎用】ローカルシステム(Windows 等)から、テキストファイルを読み込む
【Applet/汎用】URL経由でWebサーバ上のテキストファイルを読み込む
【Applet】jar 内リソースからテキストファイルを読み込む
【Android】【Applet】【Java】テキストファイルの読み込み・保存 まとめ
【AndroidStudio】AndroidStudio 2.x で DDMS を表示する


関連記事
スポンサーサイト



category: Android

thread: プログラミング

janre: コンピュータ

tag: テキストファイル保存 
tb: 0   cm: --


トラックバック

トラックバックURL
→http://fantom1x.blog130.fc2.com/tb.php/125-45beae0f
この記事にトラックバックする(FC2ブログユーザー)

プロフィール

Social

検索フォーム

全記事一覧

カテゴリ

ユーザータグ

最新記事

リンク

PR