設定画面を作る (3/6)
作成:2010-11-06 15:05
更新:2010-11-06 15:24
更新:2010-11-06 15:24
■設定画面のレイアウトを用意する
では、設定画面の作成に進みましょう。まずは、表示する画面をレイアウト用のXMLファイルとして作成します。
これは、「layout」フォルダではなく、「xml」というフォルダに用意しましょう。「res」内に、新たに「xml」フォルダを作成し、そこに「pref.xml」というXMLファイルを作成してください。そして、下に掲載したコードのように記述をします。
設定画面用のレイアウトは、<PreferenceScreen>というタグを使って記述します。この中に、以下のような形でタグを組み込んでいきます。
このカテゴリのタグ内に、具体的な設定項目のコンポーネントを記述します。ここでは、以下の2つのコンポーネントを用意してあります。
EditTextPreference――通常のテキストを入力して設定するものです。
ListPreference――リストから項目を選んで設定するものです。
これらのコンポーネントのタグでは、key、title、summary、defaultvalueといった属性を用意します。keyはIDに相当するもので、コンポーネントを識別するのに用います。title、summaryは、タイトルと説明文で、実際に設定画面に表示されます。defaultvalueはデフォルトで設定される値です。
テキストの入力はそのままでいいのですが、リストを使った設定は、表示するリストの内容を用意しないといけません。これは、XMLファイルで用意しておくのが一般的です。「values」フォルダの中に、新たに「arrays.xml」というXMLファイルを作成し、下のコードのように記述をしてください。
リストの表示は、<string-array>タグを使って記述をします。これは文字通り「テキストの配列」を記述するためのものです。このタグ内に、<item>タグを使って表示する項目を用意します。
ListPreferenceの属性を見ると、android:entries="@array/mylist"という項目が用意されていますね? このandroid:entriesが、リストの項目を指定するものです。これで、@array/mylistと値を指定することにより、<string-array name="mylist">の配列がリストの項目として設定されます。
この他、android:entryValues="@array/mylist"という属性も用意されていますね。これは、リストの値を指定するものです。リストに表示されるテキストと、実際に設定される値がおことなる時などは、これを使って値だけを指定します。今回は特に値を別に設定していないので、どちらもstrings.xmlの内容を指定しておきました。
これは、「layout」フォルダではなく、「xml」というフォルダに用意しましょう。「res」内に、新たに「xml」フォルダを作成し、そこに「pref.xml」というXMLファイルを作成してください。そして、下に掲載したコードのように記述をします。
設定画面用のレイアウトは、<PreferenceScreen>というタグを使って記述します。この中に、以下のような形でタグを組み込んでいきます。
<PreferenceScreen>設定項目は、「カテゴリ」と、「設定用のコンポーネント」から構成されます。カテゴリは、<PreferenceCategory>タグで用意されます。これは文字通りカテゴリを示すもので、複数のコンポーネントをひとまとめにして表示するためのものです。
<PreferenceCategory>
……設定用コンポーネント……
</PreferenceCategory>
……必要なだけPreferenceCategoryを用意……
</PreferenceScreen>
このカテゴリのタグ内に、具体的な設定項目のコンポーネントを記述します。ここでは、以下の2つのコンポーネントを用意してあります。
EditTextPreference――通常のテキストを入力して設定するものです。
ListPreference――リストから項目を選んで設定するものです。
これらのコンポーネントのタグでは、key、title、summary、defaultvalueといった属性を用意します。keyはIDに相当するもので、コンポーネントを識別するのに用います。title、summaryは、タイトルと説明文で、実際に設定画面に表示されます。defaultvalueはデフォルトで設定される値です。
※ListPreferenceの表示用XMLファイルについて
テキストの入力はそのままでいいのですが、リストを使った設定は、表示するリストの内容を用意しないといけません。これは、XMLファイルで用意しておくのが一般的です。「values」フォルダの中に、新たに「arrays.xml」というXMLファイルを作成し、下のコードのように記述をしてください。
リストの表示は、<string-array>タグを使って記述をします。これは文字通り「テキストの配列」を記述するためのものです。このタグ内に、<item>タグを使って表示する項目を用意します。
ListPreferenceの属性を見ると、android:entries="@array/mylist"という項目が用意されていますね? このandroid:entriesが、リストの項目を指定するものです。これで、@array/mylistと値を指定することにより、<string-array name="mylist">の配列がリストの項目として設定されます。
この他、android:entryValues="@array/mylist"という属性も用意されていますね。これは、リストの値を指定するものです。リストに表示されるテキストと、実際に設定される値がおことなる時などは、これを使って値だけを指定します。今回は特に値を別に設定していないので、どちらもstrings.xmlの内容を指定しておきました。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
※「xml」内に用意する「pref.xml」 <?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="EditText"> <EditTextPreference android:key="myname" android:title="My Name" android:summary="My Name" android:defaultValue="" /> </PreferenceCategory> <PreferenceCategory android:title="List"> <ListPreference android:key="mylist" android:dialogTitle="My List" android:entries="@array/mylist" android:title="My List" android:summary="My List" android:entryValues="@array/mylist" /> </PreferenceCategory> </PreferenceScreen> ※「values」内に用意する「arrays.xml」 <?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="mylist"> <item>Hello</item> <item>Welcome</item> <item>Bye!</item> </string-array> </resources>
※関連コンテンツ