如何使用字符串元素的数组列表设置 Spinner 对象的值?

问题描述 投票:0回答:1

我正在尝试使用数组列表设置 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

Running app, spinners do not show first value of Array List

Spinners contains the values of Array List

Options selected on both spinners but return null

android android-studio kotlin arraylist spinner
1个回答
0
投票

您可以使用

toTypedArray()
将您拥有的列表转换为类型化数组;这是完整的代码:

val arrayAdapter = ArrayAdapter(requireContext(), android.R.layout.simple_spinner_dropdown_item, list.toTypedArray())
© www.soinside.com 2019 - 2024. All rights reserved.