我有一个活动ItemList.java
。当用户点击项目时,它会启动新活动,例如ItemDetailActivity.java
。
我想要做的是,当用户按下ItemDetailActivity.java上的按钮时,它应该告诉ItemList.java
刷新列表项。我知道myListAdapter.notifyDataSetChanged()
会刷新列表。但ItemList.java
如何知道何时更改数据。
我不想使用静态方法或变量。我知道如何使用处理程序,但不知道如何将处理程序传递给其他活动。
我在想的是创建自己的事件/侦听器并与列表关联,因此当事件触发时,则更改列表。广播接收器会帮助我吗?
答案 0 :(得分:3)
您可以尝试startActivityForResult(intent_to_activity)
并在同一itemlist
班级中覆盖方法:onActivityResult()
。在此方法中,通知数据集会发生变化并且应该反映出来。
答案 1 :(得分:3)
最好的方法是使用观察者模式(参考http://en.wikipedia.org/wiki/Observer_pattern),但你可以在ItemList.java中创建一个包含对myListAdapter.notifyDataSetChanged()
的调用的公共静态方法。
答案 2 :(得分:1)
你真的不应该假设Android的旧活动的引用将保持活着。如果这都是基于数据库的,那么您实际上不需要为ItemList进行任何更新。如果不是,您只需在ItemList活动的myListAdapter.notifyDataSetChanged()
中调用onResume()
即可。