in modo personalizzato RecyclerView.Adapter<CustomAdapter.ViewHolder>
, ho impostato un adattatore per un filatore e ha scoperto che il valore della mia filatore non è il cambiamento dopo la selezione, così ho cercato di aggiungere un OnItemClickListener
sul mio filatore:Impossibile impostare OnItemClickListener per filatore in Android
override fun onBindViewHolder(viewHolder: ViewHolder, position: Int) {
// The selectable items of the spinner is dynamically generated from getItems() function
val selectableItems: List<String> = getItems()
val spinnerAdapter = ArrayAdapter<String>(this.context, androi.R.layout.simple_spinner_item)
spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
spinnerAdapter.addAll(selectableItems)
viewHolder.mySpinner.adapter = spinnerAdapter
// the error occurs on the following line:
viewHolder.mySpinner.onItemClickListener = AdapterView.OnItemClickListener { adapterView, view, i, l ->
adapterView.setSelection(i)
}
viewHolder.mySpinner.setSelection(origionSelectedPosition)
}
Non ho ricevuto alcun avviso o errore durante la compilazione, tuttavia durante il periodo di esecuzione, ho ricevuto una RuntimeException che diceva che setOnItemClickListener cannot be used with a spinner
. È un po 'strano. Ho fatto qualcosa di sbagliato nel mio codice? O qualcuno sa perché il mio spinner non è cambiato con la selezione corrispondente?
Ulteriore descrizione per soluzione Kotlin:
avevo mai provato a utilizzare onItemSelectedListener
ma non è riuscito a trovare un modo adatto da utilizzare in Kotlin. Ma finalmente! Il seguente codice risolto il mio problema:
viewHolder.mySpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>, view: View, pos: Int, id: Long) {
}
override fun onNothingSelected(parent: AdapterView<out Adapter>?) {
}
}
sì .. si supponga di usare 'spinner.onItemSelectedListener' – Bharatesh
Eventuali duplicati di [ho un errore: setOnItemClickListener non può essere utilizzato con un filatore, cosa c'è che non va?] (http://stackoverflow.com/questions/11322642/i-have-an-error-setonitemclicklistener-cannot-be-used-with-a-spinner-what-is-w) – miensol
Controlla questa soluzione : http://stackoverflow.com/a/11322667/3819836 –