android - 使用 .setEnabled() 启用/禁用选项菜单按钮?

标签 android android-menu android-optionsmenu

我正在尝试做这样的事情:

    @Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);
    //multiListener = false;
    menu.add(0,START_DELETE,0, "Delete selected..").setEnabled(multiListener);
    return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
    case R.id.multiselect:
        if(multiselect == 0) { multiselect = 1;
        multiListener = true;
        Log.d("DH", "index="+multiListener);
        }
        else if(multiselect == 1) { multiselect = 0; multiListener = false;
        Log.d("DH", "index="+multiListener);
        }
        fillData();
        return true;
    case START_DELETE:
        Toast.makeText(Notepadv3.this, "Pressed delete", Toast.LENGTH_SHORT).show();
        return true;
    default: 
        return super.onOptionsItemSelected(item);

    }
}

基本上,如果 multiListener = true;使“删除选定的..”可按下,否则将其变灰...

这个简单的东西..不想和我一起锻炼,

不知何故...按钮总是灰色的,尽管 Log 说,它变为 true...

有人知道吗?

最佳答案

您应该再次调用 setEnabled() 来更改项目的状态。它的状态不绑定(bind)到变量。此方法应在 onPrepareOptionsMenu() 中调用。

关于android - 使用 .setEnabled() 启用/禁用选项菜单按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7375101/

相关文章:

android - 将 Android NDK make 文件重构为模块

android - 无法启动 Android 4.4 AVD

android - 为什么 OptionMenu 在 4.0 中不显示图标菜单但在 2.x.x 中工作

android - 通过 XML 为 Android 矢量菜单图标着色

android - 在登录系统 (Android) 中使用 invalidateOptionsMenu()

android - 在 Android 中加载谷歌地图时出现问题

java - Android Studio getApplicationContext()

android - 在 ActionBar 中有两个单选组不起作用,但是附加一个弹出菜单也不起作用

android - 如何更改操作栏中的选项菜单图标?

android - 将分隔符和图标添加到 android 操作栏弹出菜单