私のアプリケーションには、1つのアクティビティと3種類のフラグメントがあります。フラグメントからツールバーアクションを切断する方法
MainActivity
はToolBar
を持ち、およびフラグメントは、このToolBar
に、独自のアクションを追加 - 断片がToolBar
自分自身を持っていないので。
- (A)フラグメントは
EditText
、CheckBox
、Spinner
、日付 および時刻フィールドを持つformFragmet
あります。ユーザが フィールドに何かを変更したときにそれらのフィールドを更新するアクションがToolBar
にあります。 - (B)フラグメントは
ListFragment
であり、レコードのリストを持っています。ToolBar
でアクションを実行する必要はありません。 - (C)フラグメントは、(A) フラグメントおよび(B)フラグメントの両方またはタブ中の他の任意の組み合わせを含むことができるタブ付きフラグメントである。 (
ViewPager
)。TabbedFragment
はToolBar
で任意のアクションを必要としませんが、FormFragment
(A)は現在のタブにある場合、それは ディスプレイそのFormFragment
のアクション、ので、それは大丈夫だし、それ が正常に動作します。
問題は、このです:ユーザーがListFragment
(B)次の画面からレコードを選択した場合
FormFragment
(A)であり、ユーザは、フィールドの値を変更します。その後、ユーザーはToolBar
(更新)からアクションを選択し、フォームが更新されます。
成功した更新の後、ユーザは次にListFragment
(B)に(それがBackStack
をポップし、ListFragment
を示す活動によって加えToolBar
の矢印に触れる)戻り、ユーザーは、リスト内の別のアイテムを選択します。別の(新しい)FormFragment
は、フィールド内の異なるデータで開きます。
ユーザーはこのフォームで何かを変更し、ツールバーの更新アクションを押します。
変更が保存されません!その理由は、この(新しい)formFragment
のToolBar
からのアクションは、依然として前のFormFragment
に添付されているからです。
誰にもこの問題がありましたか?
フラグメントからアクションを切り離す方法はありますか?
Androidは、作成時にツールバーの新しいアクションを新しいフラグメントに設定すると思いました。しかし明らかにそうしていません。
誰かが助けてもらえますか?
P.S. 必要に応じてコードの一部を提供します。
ありがとうございます。