【问题标题】:Update Fragment when new element is added to database将新元素添加到数据库时更新片段
【发布时间】:2016-01-28 15:07:52
【问题描述】:

我正在编写一个安卓应用程序。该应用程序能够从 Parse 获取推送通知,我已经能够从 Parse 获取通知并将其放入 SQLiteDatabase。我有一个片段,当从导航抽屉中选择时,它会从数据库中读取值并使用自定义适配器显示它们。这是我需要帮助的地方。

如果用户当前选择了“通知”选项卡并且收到了新的推送通知,则通知将被放入数据库中,但在用户离开“通知”选项卡并返回“通知”选项卡之前不会显示。我对此没意见,但我希望通知片段在收到推送后立即更新。有没有办法在数据库上设置一个监听器来实现这个行为?

感谢任何回复 - 如果需要,我可以粘贴代码。

【问题讨论】:

    标签: android android-fragments android-sqlite


    【解决方案1】:

    我相信Loader 可能就是您想要的。 ThisUdacity 课程帮助我了解了如何使用 Loaders。

    通过 Loader/LoaderManager,当数据库更新时,onLoadFinished 方法在您的片段/活动中被调用。看到您正在使用 SQLite DB,您可以使用CursorLoader,它将光标传递给onLoadFinished,然后您可以使用它做任何您想做的事情,例如将其发送到适配器以显示新数据。

    【讨论】:

    • 这听起来是个很棒的概念!我将尝试实现它,然后将我的解决方案发回这里。
    • 使用加载器有帮助吗?如果没有,你最终用什么来解决这个问题?
    • 我正在实现加载器...使用本教程:phloxblog.in/… 我在使用 onCreateLoader 方法时遇到了问题。 Android Studio 没有将我的 SQLiteTestDataLoader 识别为合法的加载器。这里有什么帮助吗?
    • 刚刚完成实施。它不会自动更新片段,但我认为我可能必须调整我的代码才能获得这种行为。一切正常,只需确保在导入语句中始终使用 android.content.AsyncTaskLoader 或 android.support.v4.content.AsyncTaskLoader。
    猜你喜欢
    • 2016-03-06
    • 1970-01-01
    • 1970-01-01
    • 2019-03-17
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2013-02-27
    相关资源
    最近更新 更多