В учебных целях я пытаюсь сделать следующее:
Я хотел бы узнать, как обновить список объектов из вторичного класса.
Я знаю, что посылаемый объект более производительный, чем сериализованный, и я хотел бы пойти по этому пути
В моей основной деятельности у меня есть изменяемый список класса <entry>
.
Что я пытаюсь сделать, это обновить этот список, добавив новый объект, который я получаю, используя метод putextra
//from here I gather my fields
val i = Intent(this, NewEntry::class.java)
//I try to get my new object
val entry: Entry = i.getParcelableExtra("new")
entryList.add(entry) //update list
Вторичное действие, которое создает объект, запускается слушателем onclick из основного действия
Затем другой слушатель, работающий по клику, возвращает меня к основной деятельности
val i = Intent(this, MainActivity::class.java)
btnAdd.setOnClickListener {
//intent.putExtra("name", etName.text.toString())
//intent.putExtra("description", etDescription.text.toString())
//intent.putExtra("id", etId.text.toString().toInt())
val name: String = etName.text.toString()
val description: String = etDescription.text.toString()
val id: Int = etId.text.toString().toInt()
val entry = Entry(name, description, id)
i.putExtra("new", entry)
}
Я оставляю закомментированный код, чтобы помочь вам понять, что я уже пробовал.
Приложение мгновенно падает, и я получаю ошибку
java.lang.IllegalStateException: intent.getParcelableExtra("new") must not be null
Я думаю, что в onCreate putExtra ничего не дает или я пытаюсь неверно изменить процесс.
Поэтому возникает вопрос: как я могу создать этот объект из вторичного действия, вернуться к первичному и увидеть обновленный список?