как передать массив книг между действиями - PullRequest
1 голос
/ 10 марта 2020

У меня есть архивист типа Book. Как я могу передать список массивов другому занятию и прочитать из этого списка в другом занятии? Вот что у меня есть.

   txtViewAll.setOnClickListener {
                Intent(context, BookActivity::class.java).apply {
                    putExtra("list", list[layoutPosition].list)
                    context.startActivity(this)
                }
            }

// для чтения

val bookList = intent.getStringArrayListExtra("list") as ArrayList<Book>
            for (book in bookList) {
                list.add(Book(book.id, book.title, book.image, book.subtitle, null, null, 0, 0));
            }

Вот каждая книга

data class Book(val id: String, val title: String, var image: String, var subtitle: String, var author: String?, var desc: String?, var uploadDate: Long,  var starCount: Long)

1 Ответ

1 голос
/ 10 марта 2020

Вы можете использовать putParcelableArrayListExtra & getParcelableArrayListExtra.

Установить этот путь

Intent(context, BookActivity::class.java).apply {
putParcelableArrayListExtra("list", list[layoutPosition].list)
context.startActivity(this)

Получить этот путь

val bookList = this.intent.getParcelableArrayListExtra<Parcelable>("list") as ArrayList<Book>

Вы должны использовать Parcelable

  • Использование @ Parcelize аннотация поверх вашей модели / класса данных

Пример

@Parcelize
data class Book

Parcelable используется только для интерфейса Android, который используется сериализовать класс
, чтобы его свойства могли быть переданы из одного действия в
другое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...