用户在 DialogFragment 中设置值后更改片段选项菜单
Change fragment options menu after user sets a value in DialogFragment
我有一个 Fragment
A,它在工具栏中显示 MenuItem
Mi。单击 Mi 时,我向用户显示 DialogFragment
Df 以设置值 V.
我通过实现回调侦听器接口将此值传递给片段 A。
设置值后,我想从片段 A.
的工具栏菜单中隐藏 Mi
我想在片段 A 的 onPause()
和 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
}
}
我有一个 Fragment
A,它在工具栏中显示 MenuItem
Mi。单击 Mi 时,我向用户显示 DialogFragment
Df 以设置值 V.
我通过实现回调侦听器接口将此值传递给片段 A。 设置值后,我想从片段 A.
的工具栏菜单中隐藏 Mi我想在片段 A 的 onPause()
和 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
}
}