spinnerの値を取得  
 
 
spinnerのインデックスと値を取得したサンプルです。 
 
 
 
 
package com.example.test.test54; 
 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.RelativeLayout; 
import android.widget.Spinner; 
//クリックイベント用に追加 
import android.view.View.OnClickListener; 
//ボタンを宣言 
import android.widget.Button; 
import android.widget.TextView; 
 
public class MainActivity extends AppCompatActivity implements OnClickListener { 
 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        //setContentView(R.layout.activity_main); 
        init(); 
        createScreen(); 
    } 
 
    private int mNo1=0; 
    private int mNo2=0; 
    private int mNo3=0; 
    private int mNo4=0; 
    private ArrayAdapter<String> adapter=null; 
    private  void init() 
    { 
        adapter= new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item); 
        adapter.add("北海道"); 
        adapter.add("青森県"); 
        adapter.add("秋田県"); 
        adapter.add("岩手県"); 
        adapter.add("宮城県"); 
        adapter.add("山形県"); 
        adapter.add("福島県"); 
 
    } 
    //Spinnerによるコンボボックスと同等な機能を実装するテスト 
    private void createScreen() 
    { 
        RelativeLayout layout = new RelativeLayout(this); 
        setContentView(layout); 
 
        //座標の初期設定 
        int x=0; 
        int y=0; 
        int width=0; 
        int height=0; 
 
        //配置を設定 
        x=50; 
        y=50; 
        width=350; 
        height=60; 
        RelativeLayout.LayoutParams obj1 = null; 
        obj1=getLayoutObject(width, height); 
        obj1.leftMargin=x; 
        obj1.topMargin=y; 
 
        TextView textView = new TextView(this); 
        mNo4 = View.generateViewId(); 
        textView.setId(mNo4); 
        textView.setText("ここに選択した結果が表示されます。"); 
        layout.addView(textView,obj1); 
        textView=null; 
 
        //y座標の位置をずらしています。 
        y+=100; 
 
        //ボタンの設置 
        obj1=getLayoutObject(width, height); 
        obj1.leftMargin=x; 
        obj1.topMargin=y; 
        Button btn1=new Button(this); 
        mNo1 = View.generateViewId(); 
        btn1.setId(mNo1); 
        btn1.setOnClickListener(this); 
        btn1.setText("Spinnerの値を取得"); 
        layout.addView(btn1,obj1); 
        btn1=null; 
 
        //y座標の位置をずらしています。 
        y+=100; 
 
        x=50; 
        height=100; 
        obj1=getLayoutObject(width, height); 
        obj1.leftMargin=x; 
        obj1.topMargin=y; 
        Spinner spinner = new Spinner(this); 
        mNo3 = View.generateViewId(); 
        spinner.setId(mNo3); 
        spinner.setAdapter(adapter); 
        layout.addView(spinner,obj1); 
 
    } 
    @Override 
    //ボタンがクリックされたら実行されます。 
    public void onClick(View view) { 
        int iViewId = 0; 
        iViewId = view.getId(); 
        if(iViewId==mNo1) 
        { 
            //データを入れ替えます 
            Spinner spinner =(Spinner)findViewById(mNo3); 
            int index =0; 
            index = spinner.getSelectedItemPosition(); 
            String sResult = ""; 
            //選択されたデータを取得します。 
            sResult = (String)spinner.getSelectedItem(); 
            TextView textView =(TextView)findViewById(mNo4); 
            textView.setText(String.format("インデックス:%d 値:%s",index,sResult)); 
        } 
    } 
    //レイアウトを決定するオブジェクトを生成し渡します 
    private RelativeLayout.LayoutParams getLayoutObject(int width, int height) 
    { 
        return new RelativeLayout.LayoutParams(width, height); 
    } 
 
} 
  | 
 
 
 
 
選択したインデックスを取得するには「getSelectedItemPosition」メソッドを使用します。 
(例) 
Spinner spinner =(Spinner)findViewById(mNo3); 
int index =0; 
index = spinner.getSelectedItemPosition(); 
 
また、選択した値を取得するには「getSelectedItem」メソッドを使用してStringにキャストします。 
(例) 
sResult = (String)spinner.getSelectedItem(); 
  
 
 
 
 | 
 |