如果执行操作,则隐藏MenuItem

时间:2014-08-19 00:57:38

标签: android android-menu

我正在关注this turorial向我的应用添加选项菜单。我会在执行某个动作时隐藏其中一个项目。 例如,如果用户进行登录,那么我想隐藏登录项... 如何选择它来设置不可见?

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()) {

        case R.id.Login:
            clickLogin();   

        case R.id.BugReport:
            clickBugReport();

        case R.id.About:
            clickAbout();

        case R.id.Credits:
            clickCredits();

        default:
            return super.onOptionsItemSelected(item);
    }
}

1 个答案:

答案 0 :(得分:1)

如果您坚持不显示菜单项,那么当用户已经登录时,请创建另一个xml文件,其中包含' login'选项已删除。在onCreateOptionsMenu中设置菜单xml文件之前,请检查用户是否未登录,然后在登录时设置旧的xml文件,然后设置新的xml文件。这是一个简单的方法。

其他方法是将该项的可见性设置为false。请参阅setVisibilityHow do I hide a menu item in the actionbar?以及

如果您只想禁用登录选项,那么您可以在执行“登录”操作之前检查用户是否已登录。点击,在onOptionsItemSelected内。然后,您可以显示该菜单项的background as disabled

希望这有帮助。