web-dev-qa-db-fra.com

Android Kotlin onItemSelectedListener pour spinner ne fonctionne pas

J'ai un spinner avec quelques éléments (chaînes) ..__ Je veux ajouter les éléments sélectionnés à une liste. J'ai lu en ligne que je devrais utiliser le onItemSelectedListener au lieu du onItemClickListener.

J'ai implémenté ceci mais je ne sais pas comment terminer l'étape consistant à l'ajouter à la liste.

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

        }
    }}}

Merci

16
DukeAmber27

(en Kotlin) Utilisez ce code:

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

        }

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

        }

    }
36
Madi

string ne pourra pas vérifier avec '==' mais vous devez utiliser equals ("string") 

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

J'ai implémenté comme ça . 1. Créer une liste modifiable vide 2. Définissez onItemSelectedListner sur spinner 3. Lorsque l'utilisateur sélectionne un élément, l'ajoute à la liste mutable

Vérifiez ma cette réponse pour plus d'informations. Il vous aidera à: Android Koltin passer les valeurs de spinner à la liste mutable

0
Rajesh Dalsaniya