Spinner 加上 ArrayAdapter 的基本使用
1.MainActivity.java

import java.util.Arrays;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
public class MainActivity extends Activity
{
    private Spinner mSpinner;
    private String[] mSpinnerItems = new String[] {
            "item1", "item2", "item3"
    };
    private TextView mShowSelectedItemInSpinner;
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initLayout();
    }
    private void initLayout()
    {
        mShowSelectedItemInSpinner = (TextView) findViewById(R.id.selected_item);
        initSpinner();
    }
    private void initSpinner()
    {
        mSpinner = (Spinner) findViewById(R.id.exam_spinner);
        ArrayAdapter adapter = createArrayAdapterByStringArrayXml();
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        mSpinner.setAdapter(adapter);
        mSpinner.setOnItemSelectedListener(new ItemSelectedListener());
    }
    private void showSelectedItem()
    {
        Object selectItem = mSpinner.getSelectedItem().toString();
        for (String item : mSpinnerItems) {
            if (selectItem.equals(item)) {
                mShowSelectedItemInSpinner.setText(item);
                break;
            }
        }
    }
    private ArrayAdapter<String> getArrayAdapterByStringArray()
    {
        return new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, mSpinnerItems);
    }
    private ArrayAdapter<String> getArrayAdapterByStringArrayXml()
    {
        String[] items = getResources().getStringArray(R.array.spinner_items);
        return new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, items);
    }
    private ArrayAdapter<CharSequence> createArrayAdapterByStringArrayXml()
    {
        return ArrayAdapter.createFromResource(this, R.array.spinner_items,
                android.R.layout.simple_spinner_item);
    }
    private ArrayAdapter<String> getArrayAdapterByList()
    {
        List<String> itemList = Arrays.asList(mSpinnerItems);
        return new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, itemList);
    }
    private final class ItemSelectedListener implements OnItemSelectedListener
    {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
        {
            showSelectedItem();
        }
        @Override
        public void onNothingSelected(AdapterView<?> parent)
        {
        }
    }
}

Note:
注意各種不同取得ArrayAdapter的方式
getArrayAdapterByStringArray() 直接使用Hard Coding帶入Spinner item, android.R.layout.simple_spinner_item為 android 預設的 spinner layout
getArrayAdapterByStringArrayXml() 使用Soft Coding帶入Spinner itme, 其中item定義在R.array.spinner_items中
createArrayAdapterByStringArrayXml() 也是使用Soft Coding帶入Spinner itme
getArrayAdapterByList() 也可以使用 List 帶入 spinner item
這裡只列出常用的幾種,其他請參考官網
setDropDownViewResource() 用來設定點擊Spinner後出現的下拉式選單
ItemSelectedListener類別則是用來監聽Spinner選擇的Item
 
2./res/values/arrays.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array
        name="spinner_items">
        <item>item1</item>
        <item>item2</item>
        <item>item3</item>
    </string-array>
</resources>

Note:
使用Soft Coding定義Spinner Items
 
3.activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <Spinner
        android:id="@+id/exam_spinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <TextView
        android:id="@+id/selected_item"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/exam_spinner"
        android:layout_marginLeft="50dp"
        android:layout_marginTop="20dp"/>
</RelativeLayout>