在我的应用程序中,我有一个活动承载了两个片段。如果我在菜单中添加一个菜单项,我能在我的片段中取回它吗?活动中的OptionMenu和子片段中的OptionMenu之间有什么联系?
您需要调用setHasOptionsMenu();
并将true
作为参数传递给它,然后才能重写创建选项菜单。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Enable the option menu for the Fragment
setHasOptionsMenu(true);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.fragment1_menu, menu);
}
@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);
}
你不能在子片段中捕获活动菜单的事件。相反,你可以让你的片段实现类似 MenuItem.OnMenuItemClickListener
的东西。然后在你的活动的onOptionsItemSelected(MenuItem item)
方法中,直接调用YourFragment
.onMenuItemClick()
。