android - 以编程方式设置菜单中的可见性android

标签 android

所以,这就是我想知道的。如何在 Android 中以编程方式设置菜单的可见性?这就是我的菜单:

public boolean onCreateOptionsMenu(Menu menu){
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);
    return true;
}

public boolean onOptionsItemSelected (MenuItem item){
    switch (item.getItemId()){
        case R.id.menuregistrar:
            break;
        case R.id.menusalir:
            break;
    }
    return true;
}

但是这段代码不在 onCreate 上,所以我不知道如何以编程方式设置一个项目可见或不可见(在我的例子中,我希望“menuregistrar”在我注册我的应用程序后永远不可见。

最佳答案

将此方法放入您的Activity

public boolean onPrepareOptionsMenu(Menu menu)
{
    MenuItem register = menu.findItem(R.id.menuregistrar);      
    if(userRegistered) 
    {           
        register.setVisible(false);
    }
    else
    {
        register.setVisible(true);
    }
    return true;
}

在更短的版本中你可以这样写:

MenuItem register = menu.findItem(R.id.menuregistrar);      
register.setVisible(!userRegistered);  //userRegistered is boolean, pointing if the user has registered or not.
return true;

关于android - 以编程方式设置菜单中的可见性android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28221251/

相关文章:

Android 应用程序图标更改

android - 如何处理从Android的数据库中获取的图像的不同dpi版本?从数据库或资源中读取图像更好吗?

android - 在恢复主要 Activity 时更新 TextView

android - 与 Android 上的加密相比,解密要慢得多

android - 使用手持设备在 Eclipse 中调试 Android 应用程序

android - Unresolved reference 改造2

java - 为什么 Android 对话框标题不显示在 Android 版本的棉花糖上?

Android 自定义通知不显示

java - 未找到 Android NDK 方法...从 C++ 调用 Java

java - 如何创建看起来 TextView 比它大的列表项?