2010年9月13日月曜日

Android アプリ設定画面を作成する

Androidには設定画面専用のPreferenceActivityクラスが用意されています。
PreferenceActivityクラスを利用すると、設定値は自動的にプリファレンスファイルに読み書きされます。

アプリ設定画面のxmlレイアウトを作成する

res/xmlフォルダに「Android xml File」を新規追加します。
(xmlフォルダがなければ作成します)
「New Android XML File」ダイアログでは「Preference」ラジオを選択します。


設定項目に使用可能なコンポーネントは以下のようなものがあります。
CheckBoxPreference チェックボックス設定
EditTextPreference テキスト設定
ListPreference リスト設定
RingtonePreference リングトーンのための設定
PreferenceCategory 設定項目のカテゴリ
PreferenceScreen 設定項目が設置可能な設定(入れ子用)


まずPreferenceCategoryを追加します。
以下の設定を行います。
タイトル:タイトル(カテゴリー1タイトル)

追加したカテゴリーにCheckBoxPreferenceを追加します。
以下の設定を行います。
キー:プリファレンスのキー(checkbox)
タイトル:タイトル(チェックボックスタイトル)
要約:タイトルの下の説明(チェックボックス要約)
※実際にはタイトルや要約に使用する文字列はres/values/string.xmlに定義するようにします。
キーはres/values/ids.xmlにnameとvalueを同じ値で定義するようにします。

アプリ設定画面のActivityを作成する

プロジェクトにandroid.preference.PreferenceActivityを継承したアクティビティを作成します。
アクティビティのonCreate()メソッドではaddPreferencesFromResource()メソッドでxmlを読み込みます。
package my.study.android;  

import android.os.Bundle;
import android.preference.PreferenceActivity;

public class MainActivity extends PreferenceActivity {
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  //xmlレイアウトの読み込み
  this.addPreferencesFromResource(R.xml.pref);
 }
}


実行画面は以下のようになります。


実行画面で各設定値を変更したタイミングでデフォルトプリファレンスファイルが作成されます。
ファイルは「/data/data/<パッケージ名>/shared_prefs/<パッケージ名>_preferences.xml」に作成されます。

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
 <boolean name="checkbox" value="true" />
</map>


プログラムで設定値を使用するには、Android プリファレンスの編集を参照してください。


【関連項目】
Android プリファレンスの編集
Android アプリ設定画面を作成する
Android アプリ設定画面を作成する CheckBoxPreference
Android アプリ設定画面を作成する EditTextPreference
Android アプリ設定画面を作成するRingtonePreference
Android アプリ設定画面を作成するListPreference
Android アプリ設定画面を作成する 依存関係を設定する
Android アプリ設定画面を作成する PreferenceScreen
Androidアプリ設定画面を作成する PreferenceScreen(別アクティビティ)

【参考】
@IT XMLレイアウトでAndroidアプリに“設定画面”を追加
ASCII Androidアプリの設定画面を作成する

0 件のコメント: