4

私は Activity を持っていItemList.javaます。ユーザーがアイテムをクリックすると、新しいアクティビティが開始されますItemDetailActivity.java

私がやりたいことは、ユーザーが ItemDetailActivity.java のボタンを押すと、ItemList.javaリスト項目を更新するように指示する必要があるということです。myListAdapter.notifyDataSetChanged()リストが更新されることはわかっています。ItemList.javaしかし、いつデータを変更するかを知るにはどうすればよいでしょうか。

静的メソッドや変数を使用したくありません。ハンドラーの使用方法は知っていますが、ハンドラーを他のアクティビティに渡す方法がわかりません。

私が考えているのは、独自のイベント/リスナーを作成してリストに関連付けることです。そのため、イベントが発生したら、リストを変更します。ブロードキャスト レシーバーは役に立ちますか?

4

3 に答える 3

3

startActivityForResult(intent_to_activity)同じitemlistクラスでメソッドをオーバーライドしてみてください: onActivityResult()。この方法では、通知データセットの変更を行い、それを反映する必要があります。

于 2011-12-22T14:09:30.727 に答える
3

最良の方法はオブザーバーパターン(http://en.wikipedia.org/wiki/Observer_patternを参照)を使用することですが、ItemList.javaでへの呼び出しを含むパブリック静的メソッドを作成することもできますmyListAdapter.notifyDataSetChanged()

于 2011-12-22T14:09:46.420 に答える
1

古いアクティビティへの参照が Android によって維持されると想定するべきではありません。これがすべてデータベースに基づいている場合、ItemList を更新するために何もする必要はありません。そうでない場合は、ItemList アクティビティmyListAdapter.notifyDataSetChanged()のを呼び出すだけです。onResume()

于 2011-12-22T14:13:29.067 に答える