以前予告した通り、設定画面の作り方について学習していきます。
設定画面は大抵のアプリケーションに用意されていて、
sirocoのアプリにも、勿論、用意するつもりです。
設定画面の作成方法は色々とありますが、
PreferenceActivityを使った、最もシンプルな方法を紹介します。
今回は先に実行結果。
上記imageの通り、
「チェックボックス」、「エディットテキスト」、「リスト」、「リングストン」を表示します。
それぞれの要素が次の"res/layout/preference.xml"の各タグに紐付いています。
05行目:CheckBoxPreferenceタグがチェックボックスに、
09行目:EditTextPreferenceタグがエディットテキストに、
14行目:ListPreferenceタグがリストに、
21行目:RingtonePreferenceタグがリングストンに対応します。
綺麗な入れ子になっているので、理解しやすいと思います。
次は画面に表示する文字列と、リストの要素関連のxmlファイルです。
"res/values/strings.xml"
"res/values/arrays.xml"
最後にJavaコード。
addPreferencesFromResourceメソッドで
設定画面の項目を定義したxmlファイル(preference.xml)を指定しているだけです。
表示された要素をタップした様子は次の通りです。
大半がxmlファイルの設定で行える為、手軽に作成が出来ます。
実際のアプリの設定画面では、そのアプリに適した内容をpreference.xmlに設定するわけです。
sirocoの場合、カメラアプリを作成しようとしているので、
フラッシュのon/offの切り替えや、画面サイズなどを定義するのかな~
PreferenceActivityについては、あと何度か学習して、
より実践的な設定画面を作ってみたいと思います。
設定画面は大抵のアプリケーションに用意されていて、
sirocoのアプリにも、勿論、用意するつもりです。
設定画面の作成方法は色々とありますが、
PreferenceActivityを使った、最もシンプルな方法を紹介します。
今回は先に実行結果。
上記imageの通り、
「チェックボックス」、「エディットテキスト」、「リスト」、「リングストン」を表示します。
それぞれの要素が次の"res/layout/preference.xml"の各タグに紐付いています。
<?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" android:dialogTitle="@string/edittext_dialog_title" /> <ListPreference android:key="list_key" android:title="@string/list_title" android:summary="@string/list_summary" android:dialogTitle="@string/list_dialog_title" android:entries="@array/list_entries" android:entryValues="@array/list_entry_values" /> <RingtonePreference android:key="ringtone_key" android:title="@string/ringtone_title" android:showDefault="true" android:summary="@string/ringtone_summary" /> </PreferenceCategory> </PreferenceScreen>
05行目:CheckBoxPreferenceタグがチェックボックスに、
09行目:EditTextPreferenceタグがエディットテキストに、
14行目:ListPreferenceタグがリストに、
21行目:RingtonePreferenceタグがリングストンに対応します。
綺麗な入れ子になっているので、理解しやすいと思います。
次は画面に表示する文字列と、リストの要素関連のxmlファイルです。
"res/values/strings.xml"
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">preferenceSample</string> <string name="title">設定画面Sample</string> <string name="checkbox_title">Checkbox</string> <string name="checkbox_summary">CheckboxのSummary</string> <string name="edittext_title">EditText</string> <string name="edittext_summary">EditTextのSummary</string> <string name="edittext_dialog_title"> EditTextのダイアログタイトル </string> <string name="list_title">List</string> <string name="list_summary">ListのSummary</string> <string name="list_dialog_title">Listのダイアログタイトル</string> <string name="ringtone_title">Ringtone</string> <string name="ringtone_summary">RingtoneのSummary</string> </resources>
"res/values/arrays.xml"
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="list_entries"> <item>First</item> <item>Second</item> <item>Third</item> </string-array> <string-array name="list_entry_values"> <item>FirstのValue</item> <item>SecondのValue</item> <item>ThirdのValue</item> </string-array> </resources>
最後にJavaコード。
addPreferencesFromResourceメソッドで
設定画面の項目を定義したxmlファイル(preference.xml)を指定しているだけです。
import android.os.Bundle; import android.preference.PreferenceActivity; public class PreferenceSample01 extends PreferenceActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.layout.preference); } }
表示された要素をタップした様子は次の通りです。
大半がxmlファイルの設定で行える為、手軽に作成が出来ます。
実際のアプリの設定画面では、そのアプリに適した内容をpreference.xmlに設定するわけです。
sirocoの場合、カメラアプリを作成しようとしているので、
フラッシュのon/offの切り替えや、画面サイズなどを定義するのかな~
PreferenceActivityについては、あと何度か学習して、
より実践的な設定画面を作ってみたいと思います。
RingtonePreferenceで選択した値は取得できますか?
返信削除