在一个片段中将对象添加到DB并在另一个片段中更新listView

时间:2015-03-22 12:30:42

标签: android listview android-fragments android-database

我有一个包含3个片段的活动,当我在fragCurrencyExchange中向数据库添加一个对象时,我需要从DB更新fragExchangeHistory listView。我怎么能这样做?

代码:GitHub

3 个答案:

答案 0 :(得分:1)

使用EventBus之类的{{1}}在片段和其他组件之间进行通信。因此,当Fragment A更新数据库中的某些内容时,您可以触发事件以通知其他片段有关更改的内容。

答案 1 :(得分:0)

在活动和片段之间实现Observer模式,以便在向活动添加一些新数据以及从活动添加到片段时通知。通过这种方式,通知流程为:

  • 片段A将数据添加到数据库中。
  • 片段A通知其活动观察者数据已更新。
  • 活动通知所有其他片段数据已更新。

正如你所看到的那样,你对片段的活动很长一段时间,所以我通常使用某种事件总线库,如thisthis,这使得你的代码非常分离且易于理解。

答案 2 :(得分:0)

也许您应该使用CursorLoader。当与查询关联的数据发生更改时,CursorLoader会自动重新运行查询。 您应该从Android Developer official site

中查看