【问题标题】:How do I update a fragment from the parent activity when it is managed in a ViewPager?在 ViewPager 中管理时,如何从父 Activity 更新片段?
【发布时间】:2012-09-01 19:22:44
【问题描述】:

我有一个将 NFC 读取存储到我的应用程序数据库中的活动。我有一个片段,它有一个 ListView,其中的数据由游标适配器绑定到同一个数据库。

活动在前台处理意图,但是当我滑动到片段时,列表视图尚未使用数据库最新数据进行更新。

当我的活动将 NFC 读取添加到数据库时,告诉片段更新列表视图的最佳方法是什么?

片段在活动中由 viewpager 管理,因此我无法使用 getFragmentById() 访问片段,因为我没有 ID。我读过一些奇怪的 android:switcher hack 来访问片段的 ID 或标签,但这似乎不是一个好主意。

【问题讨论】:

    标签: android android-fragments simplecursoradapter


    【解决方案1】:

    3 种可能的方式:

    1. 从封闭活动发送广播并拥有您的片段 收听该广播并采取行动
    2. 实现回调机制 例如http://www.javaworld.com/javatips/jw-javatip10.html
    3. 在您的 Fragment 中提供一个公共方法,该方法可以由封闭的 活动

    【讨论】:

    • 这些是否按照最佳实践的顺序排列?我想做第三个,但我不知道如何访问片段。它没有 ID 或标签,因为它是在 viewpageradapter 的 getItem() 中创建的。
    • 3 可能是最糟糕的选择,因为您的碎片将与您的活动紧密耦合。我在代码中使用方法 1 进行通信。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-13
    • 2023-03-05
    • 2021-07-27
    相关资源
    最近更新 更多