首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >到parcelable Kotlin的parcelable对象列表

到parcelable Kotlin的parcelable对象列表
EN

Stack Overflow用户
提问于 2020-01-19 03:37:40
回答 2查看 550关注 0票数 2

我有一个可打包的团队课程

代码语言:javascript
运行
复制
@Parcelize
class Team(var name: String, var teamMembers: List<String>, var id: UUID): Parcelable

我有一个返回(当前硬编码的)团队列表的服务:

代码语言:javascript
运行
复制
@Module 
class TeamInfoModule @Inject constructor(): ITeamInfoModule {

    @Provides
    override fun getAllTeamData(): List<Team> { ... }

}

我希望能够将这个团队列表传递到活动中的片段中,如下所示:

代码语言:javascript
运行
复制
class MainActivity: AppCompatActivity() {

    @Inject
    lateinit var teamInfoModule: TeamInfoModule;

    lateinit var team: Team;

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        DaggerServiceModuleComponent.create().inject(this)

        val bundle = Bundle()
        val teamArrayList: List<Team> = this.teamInfoModule.getAllTeamData()
        val homeFragment = HomeFragment()

        bundle.putParcelable("teamData", teamArrayList)
        homeFragment.arguments = bundle

    }
}

这将抛出一个错误:Type Mismatch. Required: Parcelable? Found: List<Team>.

我知道可以将单个团队传递给我的片段,因为它不会抛出错误。

我的问题是,有没有我还没有找到的实用工具,可以以某种方式将列表序列化为Parcelable?我有创建一个自定义TeamListClass的想法,它也实现了@Parcelize,但在我离开并编写我不需要的代码之前,我想在这里询问一下。也许是类似于JS‘Array.map()的东西,它将把每个Parcelable都传递到包中?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-19 03:39:37

您应该使用:

代码语言:javascript
运行
复制
bundle.putParcelableArrayList("teamData", ArrayList(teamArrayList))
票数 3
EN

Stack Overflow用户

发布于 2020-01-19 03:40:33

使用ArrayList(teamArrayList)将列表转换为arrayList

代码语言:javascript
运行
复制
 bundle.putParcelableArrayList("teamData", ArrayList(teamArrayList))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59804128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档