[英]Android - Switching between fragments; Menu Item problems
我的应用程序使用片段,操作栏和导航抽屉。 当我在片段之间切换时,菜单项将损坏并且不再起作用。 我尝试了各种方法来解决问题,但无济于事。
在我的片段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);
}
在每个片段的菜单中,我使用menu.Clear();
以防止在片段之间切换时堆积菜单项。 第一次选择片段时,菜单运行选定的功能就很好,但是在切换到另一个片段并再次返回菜单项之后,单击菜单项不会执行任何操作。
问题是您清除菜单并再次执行充气菜单。
删除线
inflater.inflate(R.menu.blank, menu);
相反,您只需要清除Fragment的onCreateOptionsMenu()中的菜单,这样就不会为该特定片段显示菜单,而为其他片段显示菜单。
另外,您只需要在所有片段共有的Activity
onCreateOptionsMenu
膨胀菜单
也可以在这里查看我的答案。 动作按钮显示在所有片段中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.