ドロップダウンリスト
次に紹介するのは、ドロップダウンリストです。Androidではドロップダウンリストを表すタグは<Spinner>タグです。activity_view_sample.xmlファイルの<RadioGroup>の閉じタグの後に以下のコードを追加します。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
~省略~
</RadioGroup>
<Spinner
android:id="@+id/spCurryList"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ffffff"
android:entries="@array/sp_currylist"
android:paddingBottom="5dp"
android:paddingTop="5dp"/>
<Button
~省略~
ここで、Spinner用の表示文字列をstrings.xmlに追加します。今回は、今までの<string>タグと違うタグを追加します。以下のタグを<resources>の閉じタグの前に追加してください。
<?xml version="1.0" encoding="utf-8"?>
<resources>
~省略~
<string-array name="sp_currylist"> (1)
<item>ドライカレー</item>
<item>カツカレー</item>
<item>ビーフカレー</item>
<item>チキンカレー</item>
<item>シーフードカレー</item>
<item>キーマカレー</item>
<item>グリーンカレー</item>
</string-array>
</resources>
入力が終了し、特に問題がなければアプリを実行してみてください。以下のような画面が表示されれば成功です。
「ドライカレー」と表示されている部分をタップすると以下のようにドロップダウンリストが表示されます。
この<Spinner>タグで注目したいのは、そのリストデータです。ドロップダウンリストで使われるデータというのは、配列といえます。このデータをアクティビティ内でJavaコードで記述してももちろんいいのですが、今回のサンプルのような固定の文字列配列の場合、strings.xmlに記述して、それを利用することもできます。その際に使用するのが<string-array>タグとandroid:entries属性です。
手順としては、まず、strings.xmlに<string-array>タグを記述し、データひとつひとつを<item>タグで記述します(リスト6 strings.xmlの(1))。その後、android:entries属性の「@array/…」の「…」の部分に<string-array>タグのname属性を記述します。
例えば、DBのデータなど、データが動的に変化するリストの場合は、もちろんアクティビティでデータを用意する必要があります。
