最終更新:
moonlight_aska 2015年12月06日(日) 00:54:29履歴
アプリケーションをカスタマイズするための設定情報は, 以下を利用することで簡単に作成できる.
・Android 2.3(API Level 10)までは, プリファレンスアクティビティ(PreferenceActivity)
・Android 3.0(API Level 11)以降は, プリファレンスフラグメント(PreferenceFragment)
設定された設定情報は, 「/data/data/アプリケーションのパッケージ名/shared_prefs」の下に登録される.

1) チェックボックスによる設定を行う.

2) エディットテキストによる設定を行う.

3) リストによる設定を行う.

4) 着信音の設定を行う.

・Android 2.3(API Level 10)までは, プリファレンスアクティビティ(PreferenceActivity)
・Android 3.0(API Level 11)以降は, プリファレンスフラグメント(PreferenceFragment)
設定された設定情報は, 「/data/data/アプリケーションのパッケージ名/shared_prefs」の下に登録される.

アプリケーションの設定情報はXMLで定義する.
ソースコードでも定義可能であるが, ここでは省略する.
ソースコードでも定義可能であるが, ここでは省略する.
- res/xml/pref.xml
- res/xml/pref.xmlを新規に作成し, PreferenceScreen要素からなる設定情報の定義を記述する.
- PreferenceCategory要素は, 設定項目の分類を表し, 各設定項目の属性定義をここに記述する.
- CheckBoxPreference要素は, チェックボックスによる設定の定義を記述する.
- EditTextPreference要素は, エディットテキストによる設定の定義を記述する.
- ListPreference要素は, リストによる設定の定義を記述する. リストに表示する内容については, arrays.xml内で定義する.
- RingtonePreferece要素は, 着信音の設定の定義を記述する.
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="@string/title">
<!-- チェックボックスによる設定 -->
<CheckBoxPreference
android:key="checkbox_key"
android:title="@string/checkbox_title"
android:summary="@string/checkbox_summary"
/>
<!-- エディットテキストによる設定 -->
<EditTextPreference
android:key="edittext_key"
android:title="@string/edittext_title"
android:summary="@string/edittext_summary"
/>
<!-- リストによる設定 -->
<ListPreference
android:key="list_key"
android:title="@string/list_title"
android:summary="@string/list_summary"
android:entries="@array/list_entries"
android:entryValues="@array/list_entryvalues"
/>
<!-- 着信音の設定 -->
<RingtonePreference
android:key="ringtone_key"
android:title="@string/ringtone_title"
android:summary="@string/ringtone_summary"
android:showDefault="true"
/>
</PreferenceCategory>
</PreferenceScreen>
- res/values/arrays.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="list_entries">
<item>Item 1</item>
<item>Item 2</item>
<item>Item 3</item>
</string-array>
<string-array name="list_entryvalues">
<item>1</item>
<item>2</item>
<item>3</item>
</string-array>
</resources>
- PrefFragment.java
- PreferenceFragmentクラスを継承する.
- PreferemceFragment#addPreferencesFromResourceメソッドで, 設定画面のXMLファイルを指定する.
package com.moonlight_aska.android.preference01;
import android.os.Bundle;
import android.preference.PreferenceFragment;
public class PrefFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.pref);
}
}
- Preference01.java
- 画面のルートに当たるandroid.R.id.contentに直接PreferenceFragmentを設定する.
package com.moonlight_aska.android.preference01;
import android.app.Activity;
import android.os.Bundle;
public class Preference01 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(android.R.id.content, new PrefFragment()).commit();
}
}
- Preference01.java
- アクティビティは, PreferenceActivityクラスを継承する.
- PreferenceActivity#addPreferencesFromResourceメソッドで, 設定画面のXMLファイルを指定する.
package com.moonlight_aska.android.preference01;
import android.os.Bundle;
import android.preference.PreferenceActivity;
public class Preference01 extends PreferenceActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.pref);
}
}
1) チェックボックスによる設定を行う.

2) エディットテキストによる設定を行う.

3) リストによる設定を行う.

4) 着信音の設定を行う.

コメントをかく