How can I alter a MenuItem on the Options Menu on Android?

后端 未结 6 1330
耶瑟儿~
耶瑟儿~ 2020-12-08 03:59

I have an Options Menu on my Activity with an MenuItem \"Start\". When this MenuItem is selected I would like to alter the Menu so it

6条回答
  •  情书的邮戳
    2020-12-08 04:51

    Flygenring answer is correct, but menu.findItem() is laggy and calling it within onPrepareOptionsMenu(Menu menu) produces bad user experience. It's better to get MenuItem object once while creating menu, and then just call setVisible each time menu occures on screen:

        MenuItem mDynamicMenuItem;
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            // Get dynamic menu item
            mDynamicMenuItem = menu.findItem(R.id.menu_item);
            return true;
        }
    
        // Prepare the Screen's standard options menu to be displayed. This is called right 
        // before the menu is shown, every time it is shown. You can use this method to
        // efficiently enable/disable items or otherwise dynamically modify the contents.
        @Override
        public boolean onPrepareOptionsMenu(Menu menu) {
            super.onPrepareOptionsMenu(menu);
            // Here is just a good place to update item
            mDynamicMenuItem.setVisible(isVisible);
            return true;
        }
    

提交回复
热议问题