スピナーを使用するには基本的には
1.スピナーを配置する
2.内容を設定する
3.クリックイベントを取得する
の3つの設定を行います
スピナーを配置する
今回はMainActivity.javaを変更して動的にスピナーを配置したいと思います
//リニアレイアウトを配置 LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.VERTICAL); setContentView(layout); //リニアレイアウトにスピナーを追加 Spinner spinner = new Spinner(this); layout.addView(spinner);レイアウトとスピナーを新規に作成し
“layout.addView(spinner);”でレイアウトにスピナーを挿入しています
内容を設定する
次にスピナーの内容を設定したいと思います
スピナーで選択できる項目を
{ "test1", "test2", "test3", "test4" }の4つにしたいと思います
スピナーのレイアウトは今回はもともとAndroidに入っている
R.layout.simple_spinner_item
というものを使いたいと思います
これはシンプルなデザインなので使用頻度は低いと思いますがw今回は導入なのでこれで行きたいと思います
クリックイベントを取得する
クリックイベントを取得するにはsetOnItemSelectedListenerを使用します
OnItemSelectedListenerはリスト項目が選択された時に実行されるイベントリスナーです
リスト項目が選択された時ににはonItemSelectedが
リスト項目が選択されなかった時にはonNothingSelectedがそれぞれ実行されます
サンプルプログラム
選択したitemをトーストで表示させるようにしました
MainActivity.java
package blog.test; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.LinearLayout; import android.widget.Spinner; import android.widget.Toast; public class MainActivity extends Activity { private String[] mStrings = { "test1", "test2", "test3", "test4" }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //リニアレイアウトを配置 LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.VERTICAL); setContentView(layout); //リニアレイアウトにスピナーを追加 Spinner spinner = new Spinner(this); layout.addView(spinner); ArrayAdapteradapter = new ArrayAdapter (this, android.R.layout.simple_spinner_item, mStrings); spinner.setAdapter(adapter); //スピナーのクリックイベントを取得する spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { //Itemが選択された時 public void onItemSelected(AdapterView parent, View view, int position, long id) { //parentのspinnerを指定 Spinner spinner = (Spinner) parent; //選択されたitemを取得 String item = (String) spinner.getSelectedItem(); //Toast表示 Toast.makeText(MainActivity.this, String.format("%sが選択されました。", item), Toast.LENGTH_SHORT).show(); } //何も選択されなかったとき public void onNothingSelected(AdapterView parent) { Toast.makeText(MainActivity.this, "何も選択されませんでした", Toast.LENGTH_SHORT).show(); } }); } }
実行結果は以下のようになります
まずはスピナーだけが表示されます

スピナーをタッチすると選択画面が出てきます

たとえばtest3を選択すると・・・

トースト表示が出てきます
なお何も選択されないというonNothingSelectedは今回は実行されませんww
スポンサードリンク
【ウィジェット スピナーの最新記事】