Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';t以编程方式隐藏操作栏菜单项_Java_Android - Fatal编程技术网

Java Can';t以编程方式隐藏操作栏菜单项

Java Can';t以编程方式隐藏操作栏菜单项,java,android,Java,Android,如果共享首选项为false,我将尝试隐藏Actionbar菜单项 我得到了我想要的共享偏好,但菜单项不会隐藏 // Inflate a menu to be displayed in the toolbar toolbar.inflateMenu(R.menu.activity_main_actionbar); // Enable disable set start page item if(!sharedPref.getBoolean("enable_custom_startp

如果共享首选项为false,我将尝试隐藏Actionbar菜单项

我得到了我想要的共享偏好,但菜单项不会隐藏

// Inflate a menu to be displayed in the toolbar
toolbar.inflateMenu(R.menu.activity_main_actionbar);       

// Enable disable set start page item
if(!sharedPref.getBoolean("enable_custom_startpage", false)) {
    toolbar.getMenu().findItem(R.id.setasstartpage).setVisible(false);
}
我做错了什么???

试试这个

invalidateOptionsMenu();
mToolbar.getMenu().findItem(id).setEnabled(false);
我希望这对你有帮助。

试试这个

invalidateOptionsMenu();
mToolbar.getMenu().findItem(id).setEnabled(false);

我希望它对您有所帮助。

获取一个指向此类项目的菜单项,在其上调用setVisible以调整其可见性,然后在活动上调用InvalidateOptions菜单(),以便相应地调整操作栏菜单

更新:菜单项不是布局中的常规视图。这很特别,完全不同。您的代码为项返回null,这导致崩溃。相反,您需要做的是:


MenuItem=menu.findItem(R.id.addAction)

获取一个指向该项的菜单项,在其上调用setVisible以调整其可见性,然后在活动上调用InvalidateOptions菜单(),以便相应地调整操作栏菜单

更新:菜单项不是布局中的常规视图。这很特别,完全不同。您的代码为项返回null,这导致崩溃。相反,您需要做的是:


MenuItem=menu.findItem(R.id.addAction)

执行此操作的正确位置是
onprepareOptions功能表
。从

准备要显示的屏幕标准选项菜单。这是 每次显示菜单时,在显示菜单之前调用。你可以 使用此方法可以有效地启用/禁用项目或其他 动态修改内容

因此,我建议您重写onPrepareOptions菜单上的
,然后检查其中的共享Prefs并相应地显示菜单。大概

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    // Enable disable set start page item
    if(!sharedPref.getBoolean("enable_custom_startpage", false)) {
        toolbar.getMenu().findItem(R.id.setasstartpage).setVisible(false);
    }

    return true;
}

执行此操作的正确位置是
onprepareOptions功能表
。从

准备要显示的屏幕标准选项菜单。这是 每次显示菜单时,在显示菜单之前调用。你可以 使用此方法可以有效地启用/禁用项目或其他 动态修改内容

因此,我建议您重写onPrepareOptions菜单上的
,然后检查其中的共享Prefs并相应地显示菜单。大概

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    // Enable disable set start page item
    if(!sharedPref.getBoolean("enable_custom_startpage", false)) {
        toolbar.getMenu().findItem(R.id.setasstartpage).setVisible(false);
    }

    return true;
}
试试这个

invalidateOptionsMenu();
mToolbar.getMenu().findItem(id).setEnabled(false);
我希望它对你有用。

试试这个

invalidateOptionsMenu();
mToolbar.getMenu().findItem(id).setEnabled(false);
我希望它对你有用

  • 首先在活动中全局保存菜单-

    Menu menuu;
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    menuu=menu;
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
    }
    
  • 为您准备不同的menu.xml。一个正在吃noitem,另一个正在吃noitem 包含您想要的项目

  • menu_main.xml

    要恢复正常的菜单-

    menuu.clear();
    getMenuInflater().inflate(R.menu.menu_main, menuu);
    
  • 首先在活动中全局保存菜单-

    Menu menuu;
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    menuu=menu;
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
    }
    
  • 为您准备不同的menu.xml。一个正在吃noitem,另一个正在吃noitem 包含您想要的项目

  • menu_main.xml

    要恢复正常的菜单-

    menuu.clear();
    getMenuInflater().inflate(R.menu.menu_main, menuu);
    

    在oncreate()方法中,使用这个getSupportActionBar().hide();如果minSdkVersion为11或更高,请改用:getActionBar().hide();是否仅隐藏选项菜单或整个操作栏?仅隐藏选项菜单项。请尝试此操作。在oncreate()方法中,使用此getSupportActionBar().hide();如果minSdkVersion为11或更高,请改用:getActionBar().hide();您想只隐藏选项菜单还是整个操作栏?只隐藏选项菜单项。谢谢,这是解决方案。对不起,其他的帖子谢谢,这是解决方案。对不起,另一个帖子