C/C++プログラマの管理者が, Androidプログラムにチャレンジ. AndroidプログラミングのTipsをメモっていく予定です.

スピナー(Spinner)は, リストから1つの項目を選択させるウィジェットである.
表示する項目は, ListAdapterインタフェースを実装したクラスを使って, 別途準備する必要がある.



スピナーを作成する

  • res/layout/main.xml
    • "@+id/spinner_id"でプログラムからアクセスするIDを定義する.
    • スピナーをどれくらいの大きさで配置するかを指定する.
<?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"
  >
  <Spinner android:id="@+id/spinner_id"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
  />
</LinearLayout>
  • res/layout/list.xml
スピナーは, その内部にレイアウトを持つので, スピナーのレイアウトを定義する.
    • 文字列を表示するので, TextViewを定義する.
<?xml version="1.0" encoding="utf-8"?>

<TextView
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:textColor="#000000"
  />
  • コード
Activity#onCreateメソッドをオーバーライドして, スピナーを定義するコードを記述する.
    • SpinnerクラスとArrayAdapterクラスをインポートする.
    • findViewByIdメソッドで, 指定したリソースインデックスのIDに対応したスピナーのインスタンスを取得する.
    • アダプターを生成し, リストする項目を追加する.
    • setAdapterメソッドで, アダプターをスピナーに設定する.
package com.moonlight_aska.android.spinner01;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

public class Spinner01 extends Activity {
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Spinner spinner = (Spinner)findViewById(R.id.spinner_id);
    // アダプターに項目を追加
    String[] items = {"Item1","Item2","Item3"};
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list, items);
    // アダプターを設定
    spinner.setAdapter(adapter);
  }
}





このページへのコメント

実行できなとのコメントがありましたので, 再度エミュレータ(1.6)及びSharp SH-03Cで動作確認しました.
当方の環境(Android-SDK-r11)では問題なく動作しています.
開発環境及び症状を教えてください.

Posted by aska 2011年05月14日(土) 23:23:02

このソースでは実行できませんので
参考にしないように。

Posted by あどなっく 2011年05月14日(土) 21:07:42

コメントをかく


ユーザーIDでかく場合はこちら
「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu


逆引き(基礎編)

画面表示/操作(49)

フラグメント(1)

逆引き(応用編)

AD



管理人のみ編集できます