您好我正试图从儿童片段充气或更改菜单,但无法这样做。 流程是这样的。
如果我试图从活动(主要)膨胀菜单---工作正常。 如果我尝试从片段(SecondFrag)渗透菜单----工作正常 如果我试图从(SecondFrag)的子片段中膨胀菜单----不要工作
示例代码就像这样
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
Log.d("It has option mener of not", ""+hasOptionsMenu());
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
//super.onCreateOptionsMenu(menu, inflater);
Log.d("Option Menu", "Activity Option Menu");
mActivity.getSupportMenuInflater().inflate(R.menu.deal_detaisl, menu);
Log.d("Option Menu", "Activity Option Menu");
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.deal_loc:
mActivity.showMapFragment();
break;
case R.id.deal_loc_route:
mActivity.showMapRoute();
break;
}
return false;
}
答案 0 :(得分:1)
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.deal_detaisl, menu);
super.onCreateOptionsMenu(menu, inflater);
}
这对你有用,试试吧。
编辑:
您应该创建自定义Fragment
并使片段扩展自定义Fragment
。然后在Activity
onCreateOptionsMenu
Fragment
中,您可以获取当前{{1}}并调用公共方法来充气菜单(无论如何都要调用)。聊天讨论后,你的问题就解决了。