Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-在片段之间切换;菜单项问题_Java_Android_Android Fragments_Menu - Fatal编程技术网

Java Android-在片段之间切换;菜单项问题

Java Android-在片段之间切换;菜单项问题,java,android,android-fragments,menu,Java,Android,Android Fragments,Menu,我的应用程序使用片段、操作栏和导航抽屉。当我在片段之间切换时,我的菜单项会断开,不再起作用。我已经尝试了各种方法来解决这个问题,但都无济于事 在我的片段onCreate中,我设置了选项menutrue 这是我的OnCreateOptions菜单: 这是我的简单OnOptions ItemSelected: 在每个片段的菜单中,我使用menu.Clear;防止在片段之间切换时菜单项堆积。第一次选择碎片时,菜单可以正常运行所选功能,但在切换到另一个碎片并再次返回后,菜单项单击“不执行任何操作”。问题

我的应用程序使用片段、操作栏和导航抽屉。当我在片段之间切换时,我的菜单项会断开,不再起作用。我已经尝试了各种方法来解决这个问题,但都无济于事

在我的片段onCreate中,我设置了选项menutrue

这是我的OnCreateOptions菜单:

这是我的简单OnOptions ItemSelected:


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

问题是您需要清除菜单并再次执行充气菜单

拆下线路

     inflater.inflate(R.menu.blank, menu);
相反,您只需清除片段的onCreateOptions菜单中的菜单,这样该菜单就不会为该特定片段显示,而是为其他片段显示

此外,您只需要在Activity OnCreateOptions菜单中对菜单进行充气,该菜单对所有片段都是通用的


在这里也可以看到我的答案

蓟对我来说没什么意义。您是在告诉他不要在片段中为菜单充气,而只是正确地清除它,并且只从活动中加载菜单?那么,对于应该与某些片段而不是其他片段关联的单独菜单项,我们该怎么办?只有在需要隐藏时才清除,如果片段的不同菜单项需要膨胀。是的,这个答案毫无意义。谷歌特别允许片段贡献选项菜单。如果不应该这样做,那么需要提供证据来说明为什么会这样。
@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);
}
     inflater.inflate(R.menu.blank, menu);