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 в изменяемый список