私は、そのフラグメントからアクティビティへのイベントの削除とシグナリングのオーダーとプロセスの周りを頭で覆そうとしています。Androidの複数のフラグメントコールバックの混乱
私はちょうどアイテムのリストである1つのFragmentAを持つようにしようとしています、新しいアイテムを追加するフォームをロードするボタンクリック時にFragmentBに移行し、FragmentBがフォームで完了したら、 FragmentAのリスト(Main ArraylistはMainActivityに格納されています)。
基本的には、MainActivityは1つのFragmentA(項目をリストに入れる)を作成します。私はまた、FragmentB(アイテムをリストに追加できるようにするフォーム)を持っています。
私が混乱しているのは、コールバックを正しく設定する方法です。私はちょうど1つのフラグメント(using thisとthis tutorials)でコールバックを実装する方法を理解していますが、私の混乱はこれです:
正しい順番はどれですか?
MainActivityは(遷移)FragmentA、FragmentBにFragmentA次いで 遷移を '作成します'。その後、FragmentBは、FragmentAにコールバック( の新しい項目を追加)を送信し、MainActivity にFragmentA信号を送信して、その項目をメインリスト(コールバック2)に追加します。 MainActivity then はFragmentBを閉じます。 (私はFragmentAを開いたままにしたい)。
MainActivityが「作成」(遷移)FragmentA、FragmentA、次に がFragmentBに移行します。その後、FragmentBはMainActivityにコールバック( の新しい項目を追加)を送信します。 MainActivityは次にFragmentBを閉じ、 はFragmentAに状態を返します。
MainActivity '作成'(遷移)FragmentA、MainActivity FragmentAは 断片スイッチ(クローズfragmentAをまたはbackstackに追加)するコールバックを信号FragmentBに次に 遷移します。フラグメントB はMainActivityにコールバックを送信し、MainActivityはFragmentBを閉じ、 を閉じてからFragmentAを再オープンします。
うまくいけば私はそれを十分に説明しましたが、私はそれが私の言い方に紛らわしいと思います。
編集
一つの最後の質問は、活動はあなたがコールバックを必要な15種類のかけらを持っていた場合には15種類の断片リスナー「を実施」に終わるのでしょうか?ちょっと過度に思える。
おかげ
15個のフラグメントがあり、それぞれ独自のインターフェイスが必要ですが、これは少し過剰なようです。その点まで進んでいれば、おそらくEventBusを使ったほうが良いかもしれませんが、何らかの方法でこれらのイベントプロセスのそれぞれを処理する必要があります –
質問については、私はオプション2のシンプルさが好きです。しかし、これは、リストアダプタがアクティビティクラスのArraylistにバインドされていると仮定しています –