webentwicklung-frage-antwort-db.com.de

Android Kotlin onItemSelectedListener für Spinner funktioniert nicht

Ich habe einen Spinner mit einigen Elementen (Zeichenfolgen) ... Ich möchte die ausgewählten Elemente zu einer Liste hinzufügen. Ich habe online gelesen, dass ich die onItemSelectedListenerrass als die onItemClickListener verwenden sollte.

Ich habe dies implementiert, weiß aber nicht, wie ich den Schritt des Hinzufügens zur Liste vollenden soll.

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<*>) {

        }
    }}}

Vielen Dank

16
DukeAmber27

(in Kotlin) Verwenden Sie diesen Code:

yourSpinner?.onItemSelectedListener = object : AdapterView.OnItemSelectedListener{
        override fun onNothingSelected(parent: AdapterView<*>?) {

        }

        override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {

        }

    }
36
Madi

Danke, das ist hilfreich für mich, es funktioniert gut!

daysSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
            override fun onNothingSelected(parent: AdapterView<*>?) {

            }

            override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {

            }

        }
2
Rajneesh Tyagi

string kann nicht mit '==' prüfen, stattdessen müssen Sie gleich ("string") 

if (selectedItem.equals("Add new category")) {
            // do your stuff
        }
2
arjun shrestha

Ich habe so implementiert .. 1. Leere veränderliche Liste erstellen 2. Legen Sie onItemSelectedListner für den Spinner fest 3. Wenn der Benutzer das Element auswählt, fügen Sie es der veränderlichen Liste hinzu

Überprüfen Sie meine Antwort auf weitere Informationen. Es wird Ihnen helfen: Android Koltin übergeben Spinnerwerte an die veränderliche Liste

0