Как я могу получить доступ к переменной из другого файла в kotlin? - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь добавить элементы в список и хочу отобразить список всех элементов.Я сделал список в 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 голосов
/ 11 июля 2019

, хотя принятый ответ работает, у Kotlin специально есть объекты Companion для этого.Посмотрите на это:

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

, и тогда вы можете просто ссылаться на MainActivity.myListOfItems в любом месте

0 голосов
/ 10 июля 2019

Если вы ищете переменную только для доступа.

Сделать общедоступным свой спецификатор доступа.

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")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...