[Android][Kotlin] Spinnerの使い方とEnumの活用方法

### できたこと
Spinnerの簡単な実装と、Enumをうまく活用してみました！
Enumを使うことで、複数の定数を扱うことができて、コードもスッキリして見やすくできると思います。

### 具体的説明
Spinnerで選択された「選手名」をEnumから検索し、その選手のポジションをTextViewに反映させるというもの。
W杯でサッカーが盛り上がったのでサッカーのEnumにしちゃいました！


### レイアウト
```activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/green">

    <TextView
        android:id="@+id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="100dp"
        android:layout_centerHorizontal="true"
        android:text="ポジション"
        android:textColor="@color/black"
        android:textSize="50sp"/>

    <Spinner
        android:id="@+id/spinner"
        android:layout_width="200dp"
        android:layout_height="50dp"
        android:layout_below="@id/tv"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="100dp"
        android:textAlignment="center"
        android:background="@color/white"/>

</RelativeLayout>
```

### ソースコード
```MainActivityMainActivity.kt
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val tv : TextView = findViewById(R.id.tv)
        val spinner : Spinner = findViewById(R.id.spinner)
        val spinnerList : List<String> = listOf(
            "南野拓実", "鎌田大地","長友佑都","川島永嗣",
        )

        // ここはほぼテンプレのようなもの。
        // スピナーの中身（テキストサイズや背景など）を変更したい場合は、「R.layout.~~」を変更してください。
        val adapter = ArrayAdapter(applicationContext, android.R.layout.simple_spinner_item, spinnerList)
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
        spinner.adapter = adapter

        spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
            // Spinnerに中身が入っている時（今回はデフォルトで入っている状態）
            override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) {
                // spinnerで選択した選手名を取得
                val spinnerSelect = parent.selectedItem.toString()
                // 上記を元にEnumに走り、Position取得
                val playPosition = SoccerPlayerEnum.getEnumByPlayerName(spinnerSelect).position
                // TextViewにPosition反映
                tv.text = playPosition
            }
            // Spinnerの中身が空文字の時
            override fun onNothingSelected(p0: AdapterView<*>?) {
                // そのようなことはほぼほぼないので何も書かない
            }
        }
    }
}
```
### Enumクラス

```SoccerPlayerEnum.kt
enum class SoccerPlayerEnum(val playerName: String, val position: String) {
    // Enumでは大文字で書く
    // 最後の定数の後は「；」
    MINAMINO ("南野拓実", "FW"),
    KAMADA   ("鎌田大地", "MF"),
    BRAVO    ("長友佑都", "DF"),
    KAWASHIMA("川島永嗣", "GK");

    companion object {
        // ここで選手名を取得する
        fun getEnumByPlayerName(playerName: String): SoccerPlayerEnum =
            values().find {
                it.playerName == playerName
            } ?: throw NotFoundException("エラー文")

        // ここでポジションを取得する
        fun getEnumByPosition(position: String): SoccerPlayerEnum =
            values().find {
                it.position == position
            } ?: throw NotFoundException("エラー文")
    }
}
```

### 応用として

getEnumByPositionでpositionの定数も取得することができるので、
positionを使ってみたり、定数を増やしてみたりしてうまく応用活用して見てください！