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

时间:2017-10-28 12:47:05

标签: android android-fragments android-dialogfragment

我有Fragment A ,在工具栏中显示MenuItem Mi 。点击 Mi 后,我向用户显示DialogFragment Df ,以设置值 V

我通过实现回调侦听器接口将此值传递给片段 A 。 设置值后,我想隐藏片段 A 的工具栏菜单中的 Mi

我想在片段 A onPause()onResume()内处理此问题,但显示DialogFragment不会更改片段的生命周期。我想知道如何处理这个问题。

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

1 个答案:

答案 0 :(得分:0)

我在我的片段 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
    }
}