Problema de Kotlin con Spinner dentro de Fragmento
Tengo un problema con el spinner dentro de un fragmento. El spinner está lleno de datos, pero cuando selecciono un elemento no veo registros y en el spinner no se seleccionan elementos. Cuando usé casi el mismo código como una actividad, funcionó (solo cambié el contexto a “this” en el adaptador).
class EditStoperFragment : Fragment(), AdapterView.OnItemSelectedListener{
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val view = inflater.inflate(R.layout.fragment<em>edit</em>stoper, container, false)
val tagSpinner = view.findViewById<Spinner>(R.id.editSpinner)
val items: MutableList<String> = ArrayList("a","b","c")
tagSpinner.adapter = ArrayAdapter(this.requireActivity(), android.R.layout.simple<em>spinner</em>item, items) as SpinnerAdapter
tagSpinner.onItemSelectedListener = this
return view
}
override fun onItemSelected(parent: AdapterView<<em>>?, view: View?, position: Int, id: Long) {
Log.d(TAG,"OnItemSelected: $type")
}
override fun onNothingSelected(parent: AdapterView<</em>>?) {
Log.d(TAG,"error")
}
}
davy.ai
El código dado está creando un selector de opciones dentro de un Fragmento. El problema específico mencionado es que cuando se selecciona un elemento del selector, no aparecen registros y el elemento no se está seleccionando.
Una posible solución a este problema es verificar si la función onItemSelected() se está llamando en absoluto. Para esto, podemos agregar una declaración de registro al principio de la función.
Si la declaración de registro no aparece en la salida de logcat cuando se selecciona un elemento, entonces el problema podría estar en el listener en sí. Aquí hay algunas soluciones potenciales:
Al probar estas soluciones una por una, se debe poder descubrir la causa raíz del problema y resolverlo.