【问题标题】:Populate spinner from arraylist in separate fragment在单独的片段中从 arraylist 填充微调器
【发布时间】:2015-01-01 20:12:40
【问题描述】:

我有一个包含 3 个标签的应用。有一个主要活动,每个选项卡都有一个片段。

在片段 1(第一个选项卡)中,我能够从列表视图(存储在数组列表中)添加/删除项目。在片段 2(第二个选项卡)中,我想从第一个选项卡中的 arraylist 填充一个微调器;但是我注意到我无法从单独的片段(无论是私有的、受保护的还是公共的)访问对象。

在片段之间传递数组列表的最佳方式是什么?

【问题讨论】:

    标签: java android android-fragments arraylist


    【解决方案1】:

    片段到片段的通信应该通过宿主 Activity。将数据从 fragment1 传递到 Activity(可能通过自定义接口,以便轻松重用 Fragment),然后从 Activity 传递到 fragment2。详情请见this section of the documentation

    通常您会希望一个 Fragment 与另一个 Fragment 进行通信,例如根据用户事件更改内容。所有 Fragment 到 Fragment 的通信都是通过关联的 Activity 完成的。两个 Fragment 永远不应该直接通信。

    【讨论】:

    • 该示例帮助我将对象从片段 1 传递到活动,但无助于将对象从活动传递到片段 2。如果我理解正确,它似乎建议创建一个新片段2 每次更新片段 1 这似乎非常低效,而不是找到一种方法来更新需要传递的对象。
    • @glcohen 创建新片段应该是不必要的。请参阅该页面中的这句话:“宿主活动可以通过使用findFragmentById() 捕获 Fragment 实例来将消息传递到片段,然后直接调用片段的公共方法。”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多