我正在尝试使用数组列表设置 Spinner 的值,但它仅适用于函数“arrayOf()”。
我尝试将 List 转换为 Typed Array 位它不起作用。
Array List 似乎添加了所有引用的名称,当我运行该应用程序时,微调器会显示所有这些名称,但它总是返回一个空值。
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val listaciudades = ArrayList<String>()
db = FirebaseFirestore.getInstance()
db.collection("Localidad").get().addOnSuccessListener { documents ->
for (document in documents) {
var nombre = document.data["nombre"] as String
listaciudades.add(nombre)
}
}.addOnFailureListener { exception ->
Toast.makeText(requireContext(), "Fallo al guardar datos en Firebase", Toast.LENGTH_SHORT).show()
}
Toast.makeText(requireContext(), listaciudades.toString(), Toast.LENGTH_SHORT).show()
val spinnerInicio = requireView().findViewById<Spinner>(R.id.spinnerInicio)
val spinnerDestino = requireView().findViewById<Spinner>(R.id.spinnerDestino)
val arrayAdapter = ArrayAdapter(requireContext(), android.R.layout.simple_spinner_dropdown_item, listaciudades)
spinnerInicio.adapter = arrayAdapter
spinnerDestino.adapter = arrayAdapter
您可以使用
toTypedArray()
将您拥有的列表转换为类型化数组;这是完整的代码:
val arrayAdapter = ArrayAdapter(requireContext(), android.R.layout.simple_spinner_dropdown_item, list.toTypedArray())