Establecer visibilidad en el menú de forma programada android

Así que eso es lo que quiero saber. ¿Cómo puedo configurar la visibilidad del menú de forma programática en Android? Así es como tengo mi menú:

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; } 

Pero este código no está en el onCreate, así que no sé cómo configurar un elemento visible o invisible mediante programación (en mi caso, quiero que el "menuregistrar" sea invisible una vez que haya registrado mi aplicación y para siempre.

Ponga este método en su Activity

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

En versión más corta podría escribir:

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

Yo simplificaría la solución de Adil aún más con lo siguiente:

 public boolean onPrepareOptionsMenu(Menu menu) { MenuItem registrar = menu.findItem(R.id.menuregistrar); registrar.setVisible(!isRegistered); return true; } 

Utilice public boolean onPrepareOptionsMenu (Menu menu) que se llama cada vez que presiona el botón de menú y hacer sus cosas allí. O utilizar su oncreateoptionsmenu () en diferentes actividades para inflar diferentes menús – este se llama una sola vez.

Aclamaciones

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.