Android 从活动移动到片段:如何仅显示一个片段的菜单?
我是一个Android编程新手,试图从活动转移到片段 我有一个简单的蓝牙应用程序,包含3项活动:Android 从活动移动到片段:如何仅显示一个片段的菜单?,android,android-fragments,android-menu,Android,Android Fragments,Android Menu,我是一个Android编程新手,试图从活动转移到片段 我有一个简单的蓝牙应用程序,包含3项活动: MainActivity(菜单中有“设置”) 设置带有少量复选框和搜索栏的活动 扫描活动在列表中显示蓝牙设备 这是MainActivity的屏幕截图,右上角有一个省略号菜单: 我正在尝试将我的应用程序更改为具有单个MainActivity,其中显示3个片段之一(MainFragment、SettingsFragment或ScanningFragment): 我的问题是当前始终显示“设置”菜单,而我
我是否必须引入一个枚举变量,我可以查询该变量以找到当前显示的3个片段中的哪一个,或者是否有更好的方法?您可以覆盖片段中应该有菜单的onCreateOptions菜单,并仅在那里膨胀它 在片段中:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater){
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.your_fragment_menu);
}
在要显示菜单的片段中使用
onCreateOptions菜单()
,而不是在活动中。在不想显示菜单的其他片段中,使用sethaspoptionmenu(false)
要获取当前片段,请使用
FragmentManager中的findFragmentByTag()?以及如何使用findFragmentByTag()
查找当前显示的片段-例如,如果MainFragment在后堆栈中并且显示SettingsFragment,它是否会返回NOTNULL?是的,您可以在onCreateView()中使用它。由于使用的是replace()
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater){
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.your_fragment_menu);
}