2011-12-22 62 views
4

我有一个活动ItemList.java。当用户点击项目时。它开始新的活动.let的说ItemDetailAcitivty.java如何从B活动通知A列表数据已更改?

我想要做的是当用户按下ItemDetailAcitivty.java上的按钮。然后它应该告诉ItemList.java刷新列表项。 我知道myListAdapter.notifyDataSetChanged()会刷新列表。但ItemList.java怎么知道什么时候改变数据

我不知道静态方法或变量。我知道如何使用处理程序,但不知道如何将处理程序传递给其他活动。

我在想什么是创建我自己的事件/监听器,并与列表关联,所以当事件触发然后改变列表,更多的是可能是广播接收器帮助我?

+0

将ItemList的引用传递给ItemDetailActivity并调用一些刷新函数? – 2011-12-22 14:10:17

+0

使用['ContentProvider'](http://developer.android.com/guide/topics/providers/content-providers.html)。这是一些工作,但它可以带来回报。 – 2011-12-22 14:12:39

回答

3

您可以试试startActivityForResult(intent_to_activity)并在同一itemlist类中覆盖该方法:onActivityResult()。在这种方法中,通知数据集的更改应该反映出来。

+0

这通常是你在大多数基本情况下应该做的 – binnyb 2011-12-22 14:14:25

1

你真的不应该认为你的旧活动的引用将保持活着的Android。如果这全部基于数据库,那么您确实无需为您的ItemList进行任何更新。如果没有,您可以在您的ItemList活动的onResume()中简单地拨打myListAdapter.notifyDataSetChanged()

+0

这不是什么恐惧先生:(我不想每次都这么做 – Arslan 2011-12-22 14:19:45

+0

好吧,如果你绝对相信你唯一一次修改那些数据是在ItemDetailView,然后你可以做什么城市建议或设置一个静态布尔标志的地方,然后你只是检查该标志,看看你是否需要更新你的ItemList。最后,它并不罕见的做法是更新你的列表onResume。您的活动可能会暂停几天,几周甚至几个月。 – 2011-12-22 14:29:22

相关问题