Чтобы сделать empty
по умолчанию, но не в раскрывающемся списке , вы можете предоставить список адаптеров, содержащий в конце вашу сущность empty
, но для количество адаптеров , укажите на один метод меньше getCount()
. так что последняя запись будет игнорироваться в выпадающем списке.
Посмотрите, как это можно сделать:
val list = arrayListOf("None","Ali","Empty") // You can provide any type of list here
val adapter = object : ArrayAdapter<String>(context, itemLayout, list) {
//Override getCount method and we reduce one count less when list is there, so that last entry would be ignored in dropdown.
override fun getCount(): Int {
val count = super.getCount()
return if (count > 0) count - 1 else count
}
}
your_spinner.adapter = adapter
your_spinner.setSelection(list.size-1) // We make our last list item as default entry
Редактировать для О.П. :
spinnerName?.let { spn ->
val adapterList = list.keys.toMutableList().apply { this.add("Empty") }
spn.adapter = object : ArrayAdapter<String>(context, R.layout.spinner_item, adapterList) {
//Override getCount method and we reduce one count less when list is there, so that last entry would be ignored in dropdown.
override fun getCount(): Int {
val count = super.getCount()
return if (count > 0) count - 1 else count
}
}
spn.setSelection(adapterList.size - 1)
}