gpt4 book ai didi

java - Android - 在fragment之间切换;菜单项问题

转载 作者:太空宇宙 更新时间:2023-11-04 14:54:29 25 4
gpt4 key购买 nike

我的应用程序使用 fragment 、操作栏和抽屉导航。当我在 fragment 之间切换时,我的菜单项会损坏并且不再起作用。我尝试了多种可能解决问题的方法,但没有效果。

在我的 fragment onCreate中,我有setHasOptionsMenu(true);

这是我的onCreateOptionsMenu:

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
Log.d("Log", "Inflating Menu");
menu.clear();
inflater.inflate(R.menu.blank, menu);
super.onCreateOptionsMenu(menu, inflater);
}

这是我的简单onOptionsItemSelected:

@Override
public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {
case R.id.mySearch:
Log.d("Log", "Implementing Search Method");
search();
return true;

case R.id.action_settings:
//do something
return true;
}
return super.onOptionsItemSelected(item);
}

在每个 fragment 的菜单中,我使用 menu.Clear(); 来防止在 fragment 之间切换时堆积菜单项。第一次选择 Fragment 时,菜单可以正常运行所选功能,但切换到另一个 Fragment 并再次返回后,菜单项单击不会执行任何操作。

最佳答案

问题是您清除菜单并再次执行膨胀菜单。

删除该行

     inflater.inflate(R.menu.blank, menu);

相反,您只需在 Fragment 的 onCreateOptionsMenu() 中清除菜单,这样该菜单就不会为该特定 fragment 显示,而会为其他 fragment 显示。

此外,您只需要在所有 fragment 通用的 Activity onCreateOptionsMenu 中膨胀菜单

另请参阅我的回答。 Action buttons are shown in all fragments

关于java - Android - 在fragment之间切换;菜单项问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23376086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com