在我的应用程序中,我有一个承载两个片段的活动。如果我将 MenuItem 添加到菜单中,我可以在我的片段中检索它吗?Activity 中的 OptionMenu 和他的子片段中的 OptionMenu 之间有什么联系?
问问题
8020 次
3 回答
5
您必须使用传递给它的参数调用setHasOptionsMenu();
,true
然后您可以覆盖 onCreate 选项菜单。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Enable the option menu for the Fragment
setHasOptionsMenu(true);
}
如果您想为每个片段设置不同的 optionsMenu,您将定义两个不同的菜单 xml 文件并在onCreateOptionsMenu
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.fragment1_menu, menu);
}
于 2013-03-15T03:11:54.730 回答
0
我发现我可以MenuItem
在 Activity中添加onCreateOptionsMenu()
,然后Fragment
通过它们的 id 在 s 中检索它们,如下所示:
活动:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
itemId= 0;
menu.add(0, itemId, 0, "item");
return super.onCreateOptionsMenu(menu);
}
分段:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
itemId= 0
MenuItem menuItem= menu.findItem(itemId);
}
于 2013-03-16T21:38:30.710 回答
0
您无法在子片段中捕获活动菜单的事件。相反,您可以让您的片段实现类似MenuItem.OnMenuItemClickListener
. 在您的活动onOptionsItemSelected(MenuItem item)
方法中,您只需调用YourFragment
. onMenuItemClick()
.
于 2013-03-15T04:03:23.373 回答