Android Kotlin 将微调器值传递给可变列表

标签 android kotlin spinner

我有一个带有微调器的应用程序,其中包含多个项目。 我创造了它和所有这一切

谁能给我一个例子,说明如何将这些值传递到我拥有的列表中?使用可变列表?

干杯

class NewKitListActivity : AppCompatActivity() {

var spinnerArray = arrayOf("Dumbell", "Punching Bag", "Yoga Ball", "Skipping Rope")

 val kitMutableList = mutableListOf(spinnerArray)





override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_new_kit_list)



    val spinner = newKitItemSpinner
    val spinnerArrayAdapter = ArrayAdapter(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 == "Dumbell") {

               // mutableListAdapter.toMutableList()
                //mutableList.adapter = mutableListAdapter


            }
        } // to close the onItemSelected

        override fun onNothingSelected(parent: AdapterView<*>) {

        }
    }

最佳答案

我相信你可以这样做。 1.制作自定义适配器或适配器 2.制作第一个包含字符串值的列表 3.制作包含选定值的可变列表 4. 当微调器第一次加载时,它从第一个适配器加载值并列出 5. 当用户选择项目时,它首先清除适配器,然后通知更改,然后从可变列表设置新的适配器加载值(我不确定最后是否需要通知适配器的更改)

//Mutable List for storing selected items

val selectedItems: MutableList<String>? = null 

 //Listen On select for spinner

        spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {

            //Performing action onItemSelected and onNothing selected
            override fun onItemSelected(arg0: AdapterView<*>, arg1: View, position: Int, id: Long) {

               // Add selected item in Mutable List
               selectedItems.add(spinnerArray[position])

               // Clear Adapter
                spinner.adapter = null
                // Notify data set changed
                spinnerArrayAdapter.notifyDataSetChanged()
               // Set New Data adapter
               spinner.adapter = ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, selectedItems)


            }

            override fun onNothingSelected(arg0: AdapterView<*>) {
                // TODO: Auto-generated method stub


            }

        }

关于Android Kotlin 将微调器值传递给可变列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46450622/

相关文章:

android - 无法删除 cordova 插件

android - 向 ListView 项添加动画

android - 发现具有软件导航栏的 Android 设备的真实屏幕尺寸(以像素为单位)

android - 在 JetPack Composable 中观察 LiveData

lambda - Kotlin Lambda参数与抽象值

spinner - 语义 UI 数字向上向下控件

android - 如何以编程方式将字体自定义字体设置为 Spinner 文本?

Android map API v2 : Zoom in on current location and marker

kotlin - 如果路由参数无效,则捕获 Ktor 位置中的异常

android - 以编程方式设置微调器文本颜色滞后,速度慢,瞬间颜色错误