- 2012-06-24 (日) 1:13
- Android
Androidではコンボボックスに相当するコントロールとして「Spinner(スピナー)」というものが存在します。
使い方を簡単にまとめてみました。
レイアウトファイルによる実装
Spinnerを配置し、entries属性に配列要素を指定します。
ここで設定した配列要素がSpinnerのコンテンツとして表示されます。配列要素については事項で説明します。
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/items" />
</LinearLayout>
/res/valuesにarrays.xmlというファイルを作成し、スピナーに設定する配列要素(アイテム項目)を定義します。
なお、わざわざ新しいファイルを作成しなくてもstrings.xmlの中に記述することも可能ですが、今回は別ファイルを使うことにしました。
arrays.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="items">
<item>item1</item>
<item>item2</item>
<item>item3</item>
<item>item4</item>
<item>item5</item>
<item>item6</item>
<item>item7</item>
<item>item8</item>
<item>item9</item>
</string-array>
</resources>
選択項目を取得
プログラムからは下表のSpinnerクラスメソッドで選択項目を取得できます。
| メソッド | 内容 |
|---|---|
| getSelectedItemPosition | 選択されている項目の行を取得する。0から始まる整数を返す。 |
| getSelectedItem | 選択されている項目そのものを取得する。 |
プログラムによる実装
もちろん、プログラム側でいろいろと処理することもできます。
HogeActivity.java
public class HogeActivity extends Activity
{
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//==== スピナー取得 ====//
Spinner spinner = (Spinner)findViewById(id.spinner);
//==== アダプタ作成 ====//
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//==== アイテム追加 ====//
adapter.add("item1");
adapter.add("item2");
adapter.add("item3");
//==== スピナーにアダプタ設定 ====//
spinner.setAdapter(adapter);
//==== リスナー設定 ====//
spinner.setOnItemSelectedListener(new OnItemSelectedListener()
{
// アイテム選択時に呼び出される。
@Override
public void onItemSelected(AdapterView<?> v, View view,
int position, long id)
{
Spinner spinner = (Spinner)parent;
String item = (String)spinner.getSelectedItem();
Log.i("Hoge", item);
}
// 何も選択されなかったときに呼び出される。
@Override
public void onNothingSelected(AdapterView<?> arg0)
{
}
});
}
}
まず、ArrayAdapterオブジェクトを作成し、アイテムを追加しています。
ArrayAdapterクラスの setDropDownViewResource() というメソッドを呼び出していますが、これはスピナーをクリックしたときのアイテム表示形式を設定するためのものです。
Spinnerクラスの setAdapter() でアダプタを設定するとアイテムが表示されるようになります。
アイテムが選択されたタイミングで処理を行いたい場合は setOnItemSelectedListener() でリスナーを設定します。
選択されたタイミングで onItemSelected() が呼び出されるので、このメソッドをオーバーライドして任意の処理を記述します。
関連があると思われる記事:
- [Android] グルーピング機能付きSpinner
- [Android] メニュー処理
- [Android] アプリケーション名とアイコン
- [Android] タイマーの使い方
- [Android] 現在日時の取得
- Newer: [ビジネス] スマートフォンビジネスについて
- Older: [Android] レイアウトでViewを両端に配置する方法
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://gacken.com/wp/program/android/997/trackback/
- Listed below are links to weblogs that reference
- [Android] Spinnerの基本的な使い方 from ミライニトドケ
