2011年1月6日木曜日

【android アプリ 開発】 Spinner 作成








■Spinner 作成

Spinnerとはコンボボックスと似たような機能をします。
次はSpinnerを実行した結果です。

[ Spinner の実行結果]


1.次のようにEclipseから新しいプロジェクトを生成します。



2.res -> layout -> main.xmlファイルのソースコードを修正します。


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:padding="10dip"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dip"
        android:text="Please select a planet:"
    />
    <Spinner
        android:id="@+id/spinner"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:drawSelectoronTop="true"
        android:prompt="@string/planet_prompt"
    />
</LinearLayout>


上のコードの中、太字の android:prompt は spinnerが実行され、選択する時に最上位部分に表示する文字列を指定します。 (次の画面を参照)


上の画面のように Choose a planet を出力する為には strings.xml を編集します。


3.res -> values -> string.xml を変更します。


<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, HelloSpinner!</string>
    <string name="app_name">HelloSpinner</string>
    <string name="planet_prompt">Choose a planet</string>
</resources>


上のコードで太字の部分を追加します。


4.Spinnerに表示される itemを定義するarray.xml を追加します。
 res -> value フォルダでマウスを右クリックしてarray.xml を生成します。
( 次の画を参照 )


上の画で Otherを選択します。


上の画で XMLを選択します。


上の画で File name に arrays.xml を入力してFinishを押下します。

生成された arrays.xml を次のように変更します。


<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <string-array name="planets">
        <item>Mercury</item>
        <item>Venus</item>
        <item>Earth</item>
        <item>Mars</item>
        <item>Jupiter</item>
        <item>Saturn</item>
        <item>Uranus</item>
        <item>Neptune</item>
    </string-array>
  
</resources>



5.src -> my.HelloSpinner -> HelloSpinner.java を次のように変更します。


package my.HelloSpinner;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class HelloSpinner extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Spinner s = (Spinner) findViewById(R.id.spinner);
        ArrayAdapter adapter = ArrayAdapter.createFromResource(
                this, R.array.planets, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        s.setAdapter(adapter);
    }
}



6.Ctrl + F11 で実行します。
つぎは実行結果です。

[ spinner の初期状態 ]

[ Item が表示された状態 ]


実行後、 Spinner をクリックすると選択可能な item リストが表示され、その中から1項目が選択できます。

Blog Archive