Java Can';t以编程方式隐藏操作栏菜单项
如果共享首选项为false,我将尝试隐藏Actionbar菜单项 我得到了我想要的共享偏好,但菜单项不会隐藏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
// 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();您想只隐藏选项菜单还是整个操作栏?只隐藏选项菜单项。谢谢,这是解决方案。对不起,其他的帖子谢谢,这是解决方案。对不起,另一个帖子