gpt4 book ai didi

android - 更改 fragment 中的操作栏菜单

转载 作者:行者123 更新时间:2023-11-29 14:48:33 25 4
gpt4 key购买 nike

我想在加载 fragment 时加载另一个菜单 xml。我在主要 Activity 中使用此代码:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

我在 fragment 中使用这段代码:

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) {
getActivity().getMenuInflater().inflate(R.menu.fragment_menu, menu);
super.onCreateOptionsMenu(menu, inflater);
}

当用户加载 fragment 时,应移除 Activity 菜单,然后 fragment 菜单应加载到操作栏。当用户点击 fragment 中的后退按钮时, fragment 菜单应该移除,然后主 Activity 菜单应该加载到操作栏。

现在这段代码不是删除旧菜单,而是将新菜单添加到旧菜单附近。

我该怎么做?

最佳答案

您可以使用 menu.clear(); 方法。

它从菜单中删除所有现有项目,将其留空,就像刚刚创建的一样。

试试这个..

@Override
public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) {
menu.clear(); // clears all menu items..
getActivity().getMenuInflater().inflate(R.menu.fragment_menu, menu);
super.onCreateOptionsMenu(menu, inflater);
}

关于android - 更改 fragment 中的操作栏菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26734870/

25 4 0