用户在 DialogFragment 中设置值后更改片段选项菜单

Change fragment options menu after user sets a value in DialogFragment

我有一个 Fragment A,它在工具栏中显示 MenuItem Mi。单击 Mi 时,我向用户显示 DialogFragment Df 以设置值 V.

我通过实现回调侦听器接口将此值传递给片段 A。 设置值后,我想从片段 A.

的工具栏菜单中隐藏 Mi

我想在片段 AonPause()onResume() 中处理这个问题,但是显示 DialogFragment 不会改变片段的生命周期。我想知道如何解决这个问题。

我怎样才能实现这个目标?

我在我的片段 A 中使用回调侦听器完成此操作,该侦听器侦听 DialogFragment Df。一旦设置了值 V,就会调用 A 中的回调方法。在此方法中,我使用 V 并设置一个标志以指示 V 已设置,然后调用 invalidateOptionsMenu().

参考此实现您自己的回调。 How to send data from DialogFragment to a Fragment?

public void myCallback(int V){
  //Use V according to my logic
   vIsSet = Boolean.TRUE;
   getActivity().invalidateOptionsMenu();
}

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater){
    super.onCreateOptionsMenu(menu,inflater);
    if(vIsSet) {
        menu.removeItem(MENU_ITEM_ID);//item id of Mi
    }
}