Android Kotlin onItemSelectedListener для неработающего счетчика
У меня есть счетчик с некоторыми элементами (строки). Я хочу добавить выбранные элементы в список. Я читал онлайн, что я должен использовать onItemSelectedListener
а не onItemClickListener
.
Я реализовал это, но не знаю, как завершить шаг добавления его в список.
class NewKitListActivity : AppCompatActivity() {
var spinnerArray = arrayOf("Dumbell", "Punching Bag", "Yoga Ball", "Skipping Rope")
//var spinnerArray = arrayOf(DataService.kitList)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_new_kit_list)
val spinner = newKitItemSpinner
val spinnerArrayAdapter = ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, spinnerArray)
//selected item will look like a spinner set from XML
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
spinner.adapter = spinnerArrayAdapter
spinner.onItemSelectedListener = object : OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) {
val selectedItem = parent.getItemAtPosition(position).toString()
if (selectedItem == "Add new category") {
// do your stuff
}
} // to close the onItemSelected
override fun onNothingSelected(parent: AdapterView<*>) {
}
}}}
Спасибо
Ответы
Ответ 1
(в Котлине) Используйте этот код:
yourSpinner?.onItemSelectedListener = object : AdapterView.OnItemSelectedListener{
override fun onNothingSelected(parent: AdapterView<*>?) {
}
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
}
}
Ответ 2
строка не сможет проверить с помощью '==', вместо этого вам нужно использовать equals ("string")
if (selectedItem.equals("Add new category")) {
// do your stuff
}
Ответ 3
Спасибо, это полезно для меня, работает нормально! daysSpinner.onItemSelectedListener = object: AdapterView.OnItemSelectedListener {переопределить fun onNothingSelected (parent: AdapterView <*>?) {
}
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
}
}
Ответ 4
Я реализовал вот так. 1. Создать пустой список Mutable 2. Установите onItemSelectedListner на spinner 3. Когда пользователь выбирает элемент, добавьте его в изменяемый список
Проверьте мой ответ, чтобы узнать больше. Это поможет вам: Android Koltin передает значения spinner в изменяемый список