2010年11月16日火曜日

Android Spinner(スピナー)を使用する その1

Spinnerはクリックするとリストが表示され、そこから項目を選択することができる、Windowsのコンボボックスのようなものです。

まずは基本的な使い方から。

1,スピナーのドロップダウンアイテムに設定する文字列の配列を定義します。
res/values/arrays.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>

<string-array name="SpinnerItems">
 <item>Item1</item>
 <item>Item2</item>
 <item>Item3</item>
</string-array>

</resources>

2,アクティビティのレイアウトにスピナーを追加します。
res/layout/main.xml
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout 
 android:id="@+id/LinearLayout01" 
 android:layout_width="fill_parent" 
 android:layout_height="fill_parent" 
 xmlns:android="http://schemas.android.com/apk/res/android" 
 android:orientation="vertical">
    
<Spinner 
 android:id="@+id/Spinner01" 
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content" 
 android:entries="@array/SpinnerItems" 
 android:prompt="@string/SpinnerPrompt">
</Spinner>

</LinearLayout>
entriesプロパティで1で作成した文字列配列を指定します。
SpinnerPromptプロパティでドロップダウンに表示するプロンプトを指定します。
ここではres/values/strings.xmlに指定した値を使用しています。
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="SpinnerPrompt">選択してください。</string>
        :
</resources>

3,アクティビティクラスでスピナーのアイテムが選択された時に呼び出されるコールバックリスナーを登録します。
package my.study.android;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Spinner;
import android.widget.Toast;
import android.widget.AdapterView.OnItemSelectedListener;

public class MainActivty extends Activity {
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        // スピナーのアイテムが選択された時に呼び出されるコールバックリスナーを登録します        
        Spinner spinner = (Spinner)this.findViewById(R.id.Spinner01);
        spinner.setOnItemSelectedListener(new OnItemSelectedListener(){
            //Spinnerのドロップダウンアイテムが選択された時
            public void onItemSelected(AdapterView parent, View viw, int arg2, long arg3) {
                Spinner spinner = (Spinner)parent;
                String item = (String)spinner.getSelectedItem();
                Toast.makeText(MainActivty.this, item, Toast.LENGTH_LONG).show();
            }
            //Spinnerのドロップダウンアイテムが選択されなかった時
            public void onNothingSelected(AdapterView parent) {
            }});
    }
}

【関連項目】
Android Spinner(スピナー)を使用する その1
Android Spinner(スピナー)を使用する その2(ArrayAdapter)
Android Spinner(スピナー)を使用する その3(UIカスタマイズ)
Android Spinner(スピナー)を使用する その4(SimpleAdapter)
Android Spinner(スピナー)を使用する その5(SimpleCursorAdapter)

0 件のコメント: