Skip to content

久しぶりにAndroidのSpinner

arrays は string-array で設定します. integer-array でやる場合は自分で spinner の xml を書かないといけなくなると思います.

<resources>
<string-array name="message_count">
<item>100</item>
<item>200</item>
<item>500</item>
<item>1000</item>
<item>2000</item>
</string-array>
</resources>

string-array でやれば android.R.layout.simple_spinner_item と android.R.layout.simple_spinner_dropdown_item が使えるので楽です. 逆に android~ を使わない場合は自分で ArrayAdapter を作成して Spinner#setAdapter() すれば良さそうです.

val spinnerAdapter = ArrayAdapter.createFromResource(this,
R.array.message_count, android.R.layout.simple_spinner_item)
spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
spinnerCount.adapter = spinnerAdapter
spinnerCount.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onNothingSelected(parent: AdapterView<*>?) {}override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
val count = parent!!.getItemAtPosition(position).toString().toInt()
// なんか
}
}

Spinner でググっても記事の日付が古いものしか出てこなかったのでメモで書いてみました.