所以,这就是我想知道的。如何在 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/