1

嗨,我正在尝试从子片段中膨胀或更改菜单,但无法这样做。流程是这样的。

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

1 回答 1

1
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.deal_detaisl, menu);
    super.onCreateOptionsMenu(menu, inflater);
}

这应该对你有用,试试吧。

编辑:您应该创建一个自定义Fragment并使片段扩展该自定义Fragment。然后在你的ActivityforonCreateOptionsMenu你可以获取当前Fragment并调用一个公共方法来扩展菜单(随便调用它)。经过聊天讨论,您的问题得到了解决。

于 2013-10-18T10:36:03.497 回答