AndroidアプリケーションでSpinnerコントロールを利用します。
実装例
プロジェクトの設定
Androidアプリケーションプロジェクトを新規作成します。
- Project name: SimpleSpinner
- Build Target: Android 2.1-update1
- Application name: Simple Spinner Application
- Package name: iPentec.SimpleSpinner
- Activity: SimpleSpinner
UI
アプリケーション作成後、main.xmlを開きます。下図のデザイナ画面が表示されます。
![](https://resources.ipentec.com/document/image/android-spinner-01?maxsize=680)
デザイナで左側の[Palette]から[Spinner]コントロールをデザイン画面にドラッグ&ドロップします。デザイナ画面にSpinenrコントロールが配置されます。(下図画面参照)
string.xmlにSpinnerコントロールに表示する要素を設定します。今回はSpnnerコントロールに、Penguin, Duck, Gooseの3つの要素を表示します。string.xmlを以下の通りに編集しました。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, SimpleSpinner!</string>
<string name="app_name">Simple Spinner Application</string>
<string-array name="item_label">
<item>Penguin</item>
<item>Duck</item>
<item>Goose</item>
</string-array>
</resources>
コード
続いてコードを編集します。SimpleSpinner.javaファイルを以下の通りに編集しました。
initSpinners()メソッドを実装し、onCreateメソッドから呼び出しています。
package iPentec.SimpleSpinner;
import android.app.Activity;
import android.os.Bundle;
import android.widget.*;
public class SimpleSpinner extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initSpinners();
}
private void initSpinners() {
Spinner spinner1 = (Spinner)findViewById(R.id.spinner1);
String[] labels = getResources().getStringArray(R.array.item_label);
ArrayAdapter<String> adapter
= new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, labels);
spinner1.setAdapter(adapter);
}
}
解説
onCreate()メソッドからinitSpinners()メソッドを呼び出しています。
デザイナで定義したspnner1コントロールを取得しています。
Spinner spinner1 = (Spinner)findViewById(R.id.spinner1);
string.xmlで定義した"item_lael"を読み出し文字列配列(String[])に格納します。
String[] labels = getResources().getStringArray(R.array.item_label);
ArrayAdapterクラスのインスタンスを作成し、文字列配列(String[])の内容を作成したArrayAdapterインスタンスに反映させます。
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, labels);
Spinnerコントロールに先ほど作成したArrayAdapterクラスのインスタンスを適用します。
spinner1.setAdapter(adapter);
アプリケーションの実行
アプリケーションを実行します。実行すると下図の画面が表示されます。
Spinnerコントロールをクリックすると下図の画面に切り替わり、要素を選択できます。今回はGooseの要素をクリックして選択してみます。
Spinnerコントロールの表面の文字列が"Goose"に変わりました。
参考
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<Spinner android:layout_height="wrap_content" android:id="@+id/spinner1" android:layout_width="fill_parent"></Spinner>
</LinearLayout>
著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
最終更新日: 2024-01-04
作成日: 2011-02-24