Spinner を使ってみた

Spinner は
java.lang.Object
  ↳ android.view.View
    ↳ android.view.ViewGroup
      ↳ android.widget.AdapterView<T extends android.widget.Adapter>
        ↳ android.widget.AbsSpinner
          ↳ android.widget.Spinner
を使用します

というわけで、Spinner をいじってみた

サンプルプログラム
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

public class SpinnerTest extends Activity {
  Spinner spinner;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.spinnertest);

    spinner = (Spinner) findViewById(R.id.Spinner01);

    // ArrayAdapter を作成
    ArrayAdapter<Charsequence> adapter =
      ArrayAdapter.createFromResource(
        this,
        R.array.order,
        android.R.layout.simple_spinner_item
      );

    // Adapter のレイアウトを設定
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    // Spinner に Adapter を設定
    spinner.setAdapter(adapter);

    // Spinner に表示させるプロンプトを設定
    spinner.setPrompt("Spinner Prompt");

    // Spinner の選択されているアイテムを設定
    int default_item = 0;  // 0 = first, 1 = second,...
    spinner.setSelection(default_item);

    // Spinner のアイテムが選択された時に呼び出されるコールバックを登録
    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
      // アイテムが選択された時の動作
      public void onItemSelected(AdapterView parent,View view, int position,long id) {
        // Spinner を取得
        Spinner spinner = (Spinner) parent;

        // 選択されたアイテムのテキストを取得
        String str = spinner.getSelectedItem().toString();
      }

      // 何も選択されなかった時の動作
      public void onNothingSelected(AdapterView parent) {
      }
    });
  }
}
XMLリソース
<Spinner
  android:id="@+id/Spinner
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"">
</Spinner>
strings.xml
<string-array name="order">
  <item>First</item>
  <item>Second</item>
  <item>Third</item>
</string-array>
プログラムを実行すると


こんな感じ!

ちなみに上と同じものを XML だけで作れます

XMLリソース
<Spinner
  android:id="@+id/Spinner
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:entries="@array/order"
  android:prompt="@string/spinnerprompt">
</Spinner>
strings.xml
<string name="spinnerprompt">Spinner Prompt</string>
リスナーなどの登録だけやればいいからこっちの方がすっきりしますね!


参考サイト
http://developer.android.com/intl/ja/reference/android/widget/Spinner.html

0 件のコメント:

コメントを投稿