Androidのスピナーの使用方法をメモします。
<Spinner
android:id="@+id/spinnerDate"
android:layout_width="120dp"
android:layout_height="50dp"
app:autoSizeTextType="uniform" />
xmlにスピナーを設置する。動作に必要なコードのみ書いてます。
val array = arrayOf("果物", "リンゴ", "ブドウ", "ナシ", "ナシ", "オレンジ", "マスカット")
val arrayAdapter = ArrayAdapter(requireContext(), android.R.layout.simple_spinner_dropdown_item, array)
spinner.adapter = arrayAdapter
ArrayAdapter
にリストを並べるリストを詰めてスピナーのアダプターにセットします。
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>?, view: View, position: Int, id: Long) {
// 選択された時の処理
println(spinner.selectedItem)
println("番号$position")
}
override fun onNothingSelected(parent: AdapterView<*>?) {
// 選択しなかった時の処理
}
}
アイテムを選択したタイミングで別の処理も同時に行いたい場合はonItemSelected
を使用します。引数のposition
は選択したアイテムのインデックス番号と同じです。
spinner.setSelection(4)
// オレンジ
アイテムを変更したい場合はsetSelection()
を使用します。引数には指定したいアイテムと同じインデックス番号を設定します。
下記のように指定の果物をセットすることも可能。
for ((i, fruit) in array.withIndex()) {
if (fruit == "リンゴ") {
binding.spinner.setSelection(i)
}
}
参考