用户后更改片段选项菜单设置一个值在DialogFragment
问题描述:
我有一个Fragment
一个这显示了MenuItem
弥在工具栏中。点击Mi,我向用户展示DialogFragment
Df以设置值V。用户后更改片段选项菜单设置一个值在DialogFragment
我通过实现回调监听器接口将此值传递给片段A。 一旦设置了该值,我想从片段A的工具栏菜单中隐藏Mi。
我想处理这里面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
}
}
简单地说,你要隐藏弥df时被驳回用户设定值V之后? – Mercato
你可以尝试使用shared-preferences我认为。设置一个标志菜单的激活/非激活状态,并与它比较来显示或隐藏Mi –
@Mercato是的,我做到了。 – Tony