如何从Kotlin中的其他文件访问变量?

时间:2019-07-10 11:22:09

标签: android variables kotlin

我正在尝试将项目添加到列表中,并且想显示所有项目的列表。我已经在MainActivity.kt中创建了一个列表,但是如何在另一个kotlin文件中访问此列表?

在此列出列表并添加项目。

class MainActivity : AppCompatActivity() {

    public val itemList= arrayListOf("one", "two", "three", "four")

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

        addItemBtn.setOnClickListener {
            val new = addItemTxt.text.toString()
            if (!itemList.contains(new)){
                itemList.add(new)
            }
            addItemTxt.text.clear()
        }


        listButton.setOnClickListener {
            startActivity(Intent(this, ListChoose::class.java))
        }

    }

}

2 个答案:

答案 0 :(得分:1)

如果您要查找仅访问变量。

将其访问说明符公开。

public val itemList= arrayListOf("one", "two", "three", "four")

然后:

var itemList = MainActivity().itemList

将您的列表有意传递到“下一个活动”,从中可以删除或编辑其中的项目。

listButton.setOnClickListener {
    val intent = Intent(this, NextActivity::class.java)
    intent.putStringArrayListExtra("itemList", itemList)
    startActivity(intent)
}

从该活动获取数据:

var itemList = intent.getStringArrayListExtra("itemList")

答案 1 :(得分:0)

即使接受的答案有效,但Kotlin专门为此提供了Companion对象。看看这个:

    companion object {
    val myListOfItems = arrayListOf<String>("one","two","three","etc")
}

然后您可以在任何地方简单地引用MainActivity.myListOfItems