在一个片段中将对象添加到数据库并在另一个片段中更新 listView
Add object to DB in one fragment and update listView in another
我有一个包含 3 个片段的 activity,当我在 fragCurrencyExchange 中向数据库添加对象时,我需要从数据库更新 fragExchangeHistory listView。我该怎么做?
代码:GitHub
使用像 https://github.com/greenrobot/EventBus 这样的 EventBus
在片段和其他组件之间进行通信。因此,当片段 A 更新数据库中的某些内容时,您可以触发一个事件以将更改通知其他片段。
在 activity 和片段之间实施观察者模式,这样您可以在将一些新数据添加到 activity 和从 activity 到片段时发出通知。这样通知流程是:
- 片段 A 向数据库添加数据。
- 片段 A 通知其 Activity 观察者数据已更新。
- Activity 通知所有其他片段数据已更新。
如您所见,这将您的 activity 与片段结合了很长时间,因此我通常使用某种事件总线库,例如 this or this,它使您的代码非常解耦且易于理解。
也许您应该使用 CursorLoader
。当与查询关联的数据发生更改时,CursorLoader 会自动重新运行查询。
您应该从 Android Developer official site.
检查这个
我有一个包含 3 个片段的 activity,当我在 fragCurrencyExchange 中向数据库添加对象时,我需要从数据库更新 fragExchangeHistory listView。我该怎么做?
代码:GitHub
使用像 https://github.com/greenrobot/EventBus 这样的 EventBus
在片段和其他组件之间进行通信。因此,当片段 A 更新数据库中的某些内容时,您可以触发一个事件以将更改通知其他片段。
在 activity 和片段之间实施观察者模式,这样您可以在将一些新数据添加到 activity 和从 activity 到片段时发出通知。这样通知流程是:
- 片段 A 向数据库添加数据。
- 片段 A 通知其 Activity 观察者数据已更新。
- Activity 通知所有其他片段数据已更新。
如您所见,这将您的 activity 与片段结合了很长时间,因此我通常使用某种事件总线库,例如 this or this,它使您的代码非常解耦且易于理解。
也许您应该使用 CursorLoader
。当与查询关联的数据发生更改时,CursorLoader 会自动重新运行查询。
您应该从 Android Developer official site.