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

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

问题描述:

我有一个Fragment一个这显示了MenuItem在工具栏中。点击Mi,我向用户展示DialogFragmentDf以设置值V用户后更改片段选项菜单设置一个值在DialogFragment

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

我想处理这里面onPause()和片段一个onResume(),反而呈现出DialogFragment不改变片段的生命周期。我想知道如何解决这个问题。

我该如何做到这一点?

+0

简单地说,你要隐藏弥df时被驳回用户设定值V之后? – Mercato

+0

你可以尝试使用shared-preferences我认为。设置一个标志菜单的激活/非激活状态,并与它比较来显示或隐藏Mi –

+0

@Mercato是的,我做到了。 – Tony

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