儿童片段无法充气菜单

时间:2013-10-18 10:15:28

标签: android android-fragments

您好我正试图从儿童片段充气或更改菜单,但无法这样做。 流程是这样的。

如果我试图从活动(主要)膨胀菜单---工作正常。  如果我尝试从片段(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;
}

1 个答案:

答案 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}}并调用公共方法来充气菜单(无论如何都要调用)。聊天讨论后,你的问题就解决了。