ActionBar中动作/菜单项的动态控制

S.D*_*.D. 8 android android-actionbar

有没有办法动态禁用,隐藏,添加/删除ActionBar中的菜单项?例如,在用户填写活动中的有效电话号码之前,将禁用某项操作.

我没有在ActionBar API中找到任何有用的方法,唯一的方法似乎是在ActionBar中使用自定义View.

Arc*_*pgc 20

告诉ActionBar刷新其菜单项:invalidateOptionsMenu()

然后启用/禁用菜单项:

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    MenuItem item= menu.findItem(R.id.men_1);
    //depending on your conditions, either enable/disable
    item.setEnabled(false);
    super.onPrepareOptionsMenu(menu);
    return true;
}
Run Code Online (Sandbox Code Playgroud)

并隐藏您拥有的操作栏:

getActionBar().hide();
Run Code Online (Sandbox Code Playgroud)

  • 如果您使用的是支持库和`ActionBarActivity`,则需要使用[`supportInvalidateOptionsMenu()`](http://developer.android.com/reference/android/support/v7/app/ActionBarActivity.html#supportInvalidateOptionsMenu %28%29) (7认同)