Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.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
Android 操作栏选项菜单在切换片段后仍然存在_Android_Android Fragments - Fatal编程技术网

Android 操作栏选项菜单在切换片段后仍然存在

Android 操作栏选项菜单在切换片段后仍然存在,android,android-fragments,Android,Android Fragments,我遇到的问题是操作栏选项菜单。当我从使用自定义选项菜单的片段切换时,与该菜单关联的图标将保留到不一定使用该选项菜单的新片段视图 我发现的另一件事是,当我从应用程序中的另一个位置切换到另一个片段时,片段选项菜单图标只会附加到操作栏上现有菜单图标的旁边 旁注:我正在使用相同的选项菜单处理多个片段。我将尝试使用两种不同的选项菜单 有办法清除选项菜单吗?这样,它在给定时间只显示与1个片段关联的选项菜单 这就是我的应用程序中两个有问题的区域的基本情况。这就是我如何膨胀选项菜单,以及如何在按下选项菜单按钮后

我遇到的问题是操作栏选项菜单。当我从使用自定义选项菜单的片段切换时,与该菜单关联的图标将保留到不一定使用该选项菜单的新片段视图

我发现的另一件事是,当我从应用程序中的另一个位置切换到另一个片段时,片段选项菜单图标只会附加到操作栏上现有菜单图标的旁边

旁注:我正在使用相同的选项菜单处理多个片段。我将尝试使用两种不同的选项菜单

有办法清除选项菜单吗?这样,它在给定时间只显示与1个片段关联的选项菜单

这就是我的应用程序中两个有问题的区域的基本情况。这就是我如何膨胀选项菜单,以及如何在按下选项菜单按钮后切换回起始片段

    @Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    // TODO Add your menu entries here
    // inflater = getActivity().getMenuInflater();
    inflater.inflate(R.menu.navigation_cancel, menu);
    super.onCreateOptionsMenu(menu, inflater);

}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle presses on the action bar items
    switch (item.getItemId()) {
    case R.id.action_cancel:

        changeFragment();

    }
    return true;
}

public void changeFragment() {

    Fragment fragment = new SearchFragmentActivity();

    FragmentManager fm = getFragmentManager();
    FragmentTransaction transaction = fm.beginTransaction();

    transaction.setCustomAnimations(R.anim.cell_left_in,
            R.anim.cell_right_out);
    transaction.replace(R.id.searchDetailsFragment, fragment);
    //transaction.addToBackStack(null);
    transaction.commit();
}

看看是否可以提取在本例中工作所需的逻辑

这类似于您在示例中要执行的操作 Github代码已经。。。 类似的例子

类似的例子: