微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Kotlin-从函数中提取值

如何解决Kotlin-从函数中提取值

我正在研究Kotlin代码,我需要使用在函数内部创建的值。我分享我的代码

        val Myspinner: Spinner = findViewById(R.id.spinner)
        if (Myspinner!= null) {
            val adapter = ArrayAdapter(this,android.R.layout.simple_spinner_item,pulsatil)
            Myspinner.adapter = adapter
        }

        Myspinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener{
            //val pulsatil2 = Myspinner.selectedItem.toString()
            override fun onnothingSelected(parent: AdapterView<*>?) {Todo("not implemented")}
            override fun onItemSelected(parent: AdapterView<*>?,view: View?,position: Int,id: Long) {
                val Spinnervalue: String = parent?.getItemAtPosition(position).toString()
            }
        }

val MyArrayList: MutableList<Spinnervalue> = ArrayList()

然后我要将“ Spinnervalue”添加到“ MyArrayList”。我试图像类的全局值一样创建“ Myfinalvalue”,但是它不起作用。

有什么想法吗?

谢谢!

解决方法

第一个问题是您需要能够在类中的任何位置访问数组,因此“ MyArrayList”必须是全局的。 其次,在这里:

val MyArrayList: MutableList<Spinnervalue> = ArrayList()

您已将“ Spinnervalue”作为数组列表的类型,而要添加到数组列表的值的类型实际上是一个字符串。因此您在活动中的最终代码应如下所示:

class MainActivity : AppCompatActivity() {

val myArrayList = arrayListOf<String>()

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


    val Myspinner: Spinner = findViewById(R.id.spinner)
    if (Myspinner!= null) {
        val adapter = ArrayAdapter(this,android.R.layout.simple_spinner_item,pulsatil)
        Myspinner.adapter = adapter
    }

    Myspinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener{
        //val pulsatil2 = Myspinner.selectedItem.toString()
        override fun onNothingSelected(parent: AdapterView<*>?) {TODO("not implemented")}
        override fun onItemSelected(parent: AdapterView<*>?,view: View?,position: Int,id: Long) {
            val Spinnervalue: String = parent?.getItemAtPosition(position).toString()
            myArrayList.add(Spinnervalue)
        }
    }
}

将您的arraylist放在顶部,然后将值添加到onItemSelected函数中,就像我发布的代码一样。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。