Kotlin: передача данных с использованием putExtra и Parcelable - PullRequest
0 голосов
/ 01 апреля 2020

Я пытаюсь передать данные, используя функцию putExtra. Моя цель описана на картинке ниже. enter image description here

Я установил слушатель нажатия кнопки без putExtra в первом действии, как это;

        downloadButton?.setOnClickListener {
            val toSendProjectListIntent = Intent(this, LocalProjectListActivity::class.java)

            toSendProjectListIntent.putExtra("download", downloaded)
            startActivity(toSendProjectListIntent)
        }

И RescyclerView во втором действии есть;

        val projectList = ArrayList<ProjectListDataModel>()

        val downloadedProjectList = intent.getParcelableArrayListExtra<ProjectListDataModel>("download")

        localProjectAdapter = LocalProjectsRecyclerAdapter(projectList, this)
        projectListView.adapter = localProjectAdapter
        projectListView.setHasFixedSize(true)
        projectListView.layoutManager = LinearLayoutManager(this)
    }

Вопрос в том, я поставил val projectList = ArrayList<ProjectListDataModel>, чтобы при запуске приложения было пустым Основное действие. После этого я go Второе занятие и выбираю список нажатием кнопки. Однако я не знаю, как поместить выбранные списки в localProjectAdapter. Одним из условий является то, что, когда мы нажимаем кнопку загрузки, действие не должно изменяться ... должно оставаться на втором действии.

Более того, вы считаете, что это правильный путь? Я не уверен, что мой выбор использовать функцию putExtra и parcelable :(

Есть идеи?

1 Ответ

0 голосов
/ 01 апреля 2020

Вы должны предоставить Kotlin дополнительную информацию о типе списка объектов. Попробуйте это:

val downloadedProjectList  : ArrayList<ProjectListDataModel> =  intent.getParcelableArrayListExtra("download")

Теперь вы можете поместить скачанный ProjectList в свой адаптер

...