我有Fragment
A ,在工具栏中显示MenuItem
Mi 。点击 Mi 后,我向用户显示DialogFragment
Df ,以设置值 V 。
我通过实现回调侦听器接口将此值传递给片段 A 。 设置值后,我想隐藏片段 A 的工具栏菜单中的 Mi 。
我想在片段 A 的onPause()
和onResume()
内处理此问题,但显示DialogFragment不会更改片段的生命周期。我想知道如何处理这个问题。
我怎样才能实现这个目标?
答案 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
}
}