在Android中禁用操作栏按钮

Med*_*iha 20 android android-actionbar

是否可以在Android中禁用Action Bar中的按钮?我环顾四周,找不到任何代码片段,我当时认为应该有一些简单的方法.

Sla*_*ast 46

  1. 当您想要禁用操作栏时执行用户操作,请设置一些标志disableButtonFlag.

  2. 打电话invalidateOptionsMenu().这将触发onCreateOptionsMenu调用以重新生成菜单.

  3. 最后修改你的onCreateOptionsMenu,根据状态禁用你想要的按钮disableButtonFlag.

    if (disableButtonFlag) {
        menu.findItem(R.id.your_item).setEnabled(false);
    } else {
        menu.findItem(R.id.your_item).setEnabled(true);
    }
    
    Run Code Online (Sandbox Code Playgroud)

    或者更简单:

    menu.findItem(R.id.your_item).setEnabled(!disableButtonFlag);
    
    Run Code Online (Sandbox Code Playgroud)


tro*_*man 5

禁用操作栏中的按钮的一种简单方法是将对菜单的引用保存在onCreateOptionsMenu()

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu, menu);    
    mMenu = menu;    // Save reference
    return super.onCreateOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)

然后调用setEnabled()菜单项以启用或禁用:

mMenu.findItem(R.id.my_action_item).setEnabled(false);
Run Code Online (Sandbox Code Playgroud)

无需通过调用重新创建菜单invalidateOptionsMenu()