首页 > 解决方案 > 如何使用用户输入初始化数组?

问题描述

我正在尝试根据用户输入初始化我的数组。假设用户在文本字段中输入了一个项目,然后他们按下添加按钮,我希望文本字段中的字符串进入数组。

class CustomList : AppCompatActivity() {

    lateinit var thingsList: MutableList<String>

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

        addItemBtn.setOnClickListener { 
            if(item_text_field.text.toString() == "") {
                Toast.makeText(this, "Must enter text first", Toast.LENGTH_SHORT).show()
            } else {
                val item = item_text_field.text.toString()
                thingsList = item
            }
        }

    }
}

标签: androidandroid-studiokotlin

解决方案


这里不需要lateinit,除非你初始化变量,否则你不能向它添加项目。您可以在需要时使用惰性来初始化它。而MutableList.add()用于将项目添加到列表中。

// thingsList will be initialized whenever accessed for the first time
val thingsList by lazy { mutableListOf<String>() }

addItemBtn.setOnClickListener { 
    if(item_text_field.text.toString() == "") {
        Toast.makeText(this, "Must enter text first", Toast.LENGTH_SHORT).show()
    } else {
        // use add on the MutableList to add times into it
        thingsList.add(item_text_field.text.toString())
    }
}

推荐阅读