【Spinner】テキストだけのSpinnerを表示させる

やりたいこと

テキストだけのSpinnerを表示させたい。

手順

spinnerに複数のテキストが入ったArrayAdapterをセットすればOK。

simpleSpinner.adapter = ArrayAdapter<String>(this, android.R.layout.simple_spinner_item).apply {
    add("AAAAA")
    add("BBBBB")
    add("CCCCC")
    add("DDDDD")
    add("EEEEE")
}

android.R.layout.simple_spinner_dropdown_itemを使うと余白のあるSpinnerが表示できますよ。

simpleDropdownSpinner.adapter = ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item).apply {
    add("あいうえお")
    add("かきくけこ")
    add("さしすせそ")
    add("たちつてと")
    add("なにぬねの")
}
MEMO

セットできるAdapterはSpinnerAdapterを実装しているAdapterです。

ソースコード

SpinnerActivity.kt

class SpinnerActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_spinner)
        simpleSpinner.adapter = ArrayAdapter<String>(this, android.R.layout.simple_spinner_item).apply {
            add("AAAAA")
            add("BBBBB")
            add("CCCCC")
            add("DDDDD")
            add("EEEEE")
        }

        simpleDropdownSpinner.adapter = ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item).apply {
            add("あいうえお")
            add("かきくけこ")
            add("さしすせそ")
            add("たちつてと")
            add("なにぬねの")
        }
    }

    companion object {
        fun createIntent(context: Context) = Intent(context, SpinnerActivity::class.java)
    }
}

activity_spinner.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <android.support.v7.widget.AppCompatSpinner
        android:id="@+id/simpleSpinner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

    <android.support.v7.widget.AppCompatSpinner
        android:id="@+id/simpleDropdownSpinner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

</LinearLayout>