如何在android操作栏中隐藏菜单项?

Mar*_*515 1 android toolbar android-actionbar

我的目标是隐藏操作栏中的一个菜单项,并在单击菜单项后显示另一个菜单项.在我的申请中,我正在使用Toolbar.我已经找了很多其他问题而没找到我需要的东西.任何帮助将不胜感激.我尝试下面的代码,但点击后这会崩溃应用程序.

public boolean onOptionsItemSelected(MenuItem item) {
    final SwipeRefreshLayout mySwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swiperefresh);
    switch (item.getItemId()) {
        case R.id.action_next:
            //code
            MenuItem secondItem = (MenuItem) findViewById(R.id.action_next);
            secondItem.setVisible(false);
            return true;

        case R.id.action_previous:
            //code
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}
Run Code Online (Sandbox Code Playgroud)

Nik*_*dze 13

您可以获得对要隐藏和显示的菜单项的引用onCreateOptionsMenu,然后使其中一个可见,另一个不可见onOptionsItemSelected:

private MenuItem itemToHide;
private MenuItem itemToShow;

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);
    itemToHide = menu.findItem(R.id.item_to_hide);
    itemToShow = menu.findItem(R.id.item_to_show);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.action_next:
            // hide the menu item
            itemToHide.setVisible(false);
            // show the menu item
            itemToShow.setVisible(true);
            return true;
    }      

    return super.onOptionsItemSelected(item);
}
Run Code Online (Sandbox Code Playgroud)