Home > Android > [Android] Spinnerの基本的な使い方

[Android] Spinnerの基本的な使い方

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の基本的な使い方
Facebook にシェア
[`google_buzz` not found]
[`yahoo` not found]
[`livedoor` not found]
[`friendfeed` not found]
[`tweetmeme` not found]
[`grow` not found]

Comments:0

Comment Form
Remember personal info

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 ミライニトドケ

Home > Android > [Android] Spinnerの基本的な使い方

Search
Feeds
Meta
人気の記事

Return to page top