繁体   English   中英

菜单项在fragment android中两次调用

[英]Menu item call twice in fragment android

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);
        }

这些是片段,而我的MainActivity我正在通过单击菜单项上的片段来刷新片段,以便如果未找到Internet连接或任何其他问题,则在获取时可以刷新页面。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM