android - 菜单项在 fragment android中调用两次

标签 android menu android-actionbar fragment double-click

In fragment when i click on menu item , it calls function twice one is from previous fragment and other one is from existing fragment.

Fragment 1:
     @Override
        public void onActivityCreated(Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);
            setHasOptionsMenu(true);
        }
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            if(item.getItemId() == R.id.refresh){
                RetryCallMap();
                return true;
            }else
            return false;
        }
Fragment 2:
     @Override
        public void onActivityCreated(Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);
            setHasOptionsMenu(true);
        }
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            if(item.getItemId() == R.id.refresh){
                RetryCall();
                return true;
            }else
            return false;
        }
MainActivity :

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

        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            int id = item.getItemId();
            if (id == R.id.map) {
                pushFragments("mapFragment", new MapFragment(), true, true);
                return true;
            }
            if (id == android.R.id.home) {
                this.drawerLayout.openDrawer(drawableListView);
                return true;
            }
            return super.onOptionsItemSelected(item);
        }

这些是 fragment ,我的 MainActivity 我正在通过单击菜单项刷新 fragment ,这样如果找不到互联网连接或在获取时出现任何其他问题,我可以刷新页面。

最佳答案

在 onOptionsItemSelected() 函数中返回 true 对我有用。

 @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if(item.getItemId() == R.id.refresh){
            RetryCall();
            return true;
        }else
        return true;
    }

关于android - 菜单项在 fragment android中调用两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32305202/

相关文章:

android - 如何将标题添加到 PopupMenu 上的组,而不是子菜单

css - 如何使用 CSS 设计类似于此的垂直弹出菜单?

android - invalidateOptionsMenu 在 fragment 中不起作用

android - Gradle:如何指定库的两个源集并在项目中添加依赖项

android - 通过 URL 更改 Framelayout 的背景图像

android - (未详细)创建 Android 虚拟设备 (AVD) 时出现 panic

android - 如何在代码中更改操作栏标题颜色

android - 删除 TableLayout 中 TableRow 之间的任意间隙

javascript - 如何在单击而不是悬停时打开 Superfish jQuery 菜单?

带操作栏的 Android 全屏 Activity