Androidではコンボボックスに相当するコントロールとして「Spinner(スピナー)」というものが存在します。
使い方を簡単にまとめてみました。
レイアウトファイルによる実装
Spinnerを配置し、entries属性に配列要素を指定します。
ここで設定した配列要素がSpinnerのコンテンツとして表示されます。配列要素については事項で説明します。
main.xml
1 | <? xml version = "1.0" encoding = "utf-8" ?> |
3 | android:layout_width = "fill_parent" |
4 | android:layout_height = "fill_parent" |
5 | android:orientation = "vertical" > |
8 | android:id = "@+id/spinner" |
9 | android:layout_width = "wrap_content" |
10 | android:layout_height = "wrap_content" |
11 | android:entries = "@array/items" /> |
/res/valuesにarrays.xmlというファイルを作成し、スピナーに設定する配列要素(アイテム項目)を定義します。
なお、わざわざ新しいファイルを作成しなくてもstrings.xmlの中に記述することも可能ですが、今回は別ファイルを使うことにしました。
arrays.xml
1 | <? xml version = "1.0" encoding = "utf-8" ?> |
3 | < string-array name = "items" > |
実行すると設定した項目が表示されているのが確認できます。

選択項目を取得
プログラムからは下表のSpinnerクラスメソッドで選択項目を取得できます。
メソッド |
内容 |
getSelectedItemPosition |
選択されている項目の行を取得する。0から始まる整数を返す。 |
getSelectedItem |
選択されている項目そのものを取得する。 |
プログラムによる実装
もちろん、プログラム側でいろいろと処理することもできます。
HogeActivity.java
1 | public class HogeActivity extends Activity |
3 | public void onCreate(Bundle savedInstanceState) |
5 | super .onCreate(savedInstanceState); |
6 | setContentView(R.layout.main); |
9 | Spinner spinner = (Spinner)findViewById(id.spinner); |
12 | ArrayAdapter<String> adapter = new ArrayAdapter<String>( this , android.R.layout.simple_spinner_item); |
13 | adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); |
21 | spinner.setAdapter(adapter); |
24 | spinner.setOnItemSelectedListener( new OnItemSelectedListener() |
28 | public void onItemSelected(AdapterView<?> v, View view, |
29 | int position, long id) |
31 | Spinner spinner = (Spinner)parent; |
32 | String item = (String)spinner.getSelectedItem(); |
38 | public void onNothingSelected(AdapterView<?> arg0) |
まず、ArrayAdapterオブジェクトを作成し、アイテムを追加しています。
ArrayAdapterクラスの setDropDownViewResource() というメソッドを呼び出していますが、これはスピナーをクリックしたときのアイテム表示形式を設定するためのものです。
Spinnerクラスの setAdapter() でアダプタを設定するとアイテムが表示されるようになります。
アイテムが選択されたタイミングで処理を行いたい場合は setOnItemSelectedListener() でリスナーを設定します。
選択されたタイミングで onItemSelected() が呼び出されるので、このメソッドをオーバーライドして任意の処理を記述します。
関連があると思われる記事:
[`google_buzz` not found]
[`yahoo` not found]
[`livedoor` not found]
[`friendfeed` not found]
[`grow` not found]