Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Cómo hincho un menú de opciones de Android y establezco un elemento en Habilitado = falso?

Mi definición de menú XML establece el ítem R.id.menu_refresh habilitado en false. Cuando se ejecuta la aplicación, el elemento de menú aparece en gris e inhabilitado. ¿Por qué este código de la aplicación no habilita el elemento?

public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main, menu); MenuItem refresh = menu.getItem(R.id.menu_refresh); refresh.setEnabled(true); return true; } 

¿Qué me estoy perdiendo?

2 Solutions collect form web for “¿Cómo hincho un menú de opciones de Android y establezco un elemento en Habilitado = falso?”

Pruebe menu.findItem() lugar de getItem() . getItem() toma un índice de [0, size) mientras findItem() toma un id.

Esto es lo que hago en mi actividad para el manejo de menús …

 //Android Activity Lifecycle Method // This is only called once, the first time the options menu is displayed. @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.mainmenu, menu); return true; } //Android Activity Lifecycle Method // Called when a panel's menu is opened by the user. @Override public boolean onMenuOpened(int featureId, Menu menu) { MenuItem mnuLogOut = menu.findItem(R.id.main_menu_log_out_id); MenuItem mnuLogIn = menu.findItem(R.id.main_menu_log_in_id); MenuItem mnuOptions = menu.findItem(R.id.main_menu_options_id); MenuItem mnuProfile = menu.findItem(R.id.main_menu_profile_id); //set the menu options depending on login status if (mBoolLoggedIn == true) { //show the log out option mnuLogOut.setVisible(true); mnuLogIn.setVisible(false); //show the options selection mnuOptions.setVisible(true); //show the edit profile selection mnuProfile.setVisible(true); } else { //show the log in option mnuLogOut.setVisible(false); mnuLogIn.setVisible(true); //hide the options selection mnuOptions.setVisible(false); //hide the edit profile selection mnuProfile.setVisible(false); } return true; } //Android Activity Lifecycle Method // called whenever an item in your options menu is selected @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle item selection switch (item.getItemId()) { case R.id.main_menu_log_in_id: { ShowLoginUI(); return true; } case R.id.main_menu_log_out_id: { ShowGoodbyeUI(); return true; } case R.id.main_menu_options_id: { ShowOptionsUI(); return true; } case R.id.main_menu_profile_id: { ShowProfileUI(); return true; } default: return super.onOptionsItemSelected(item); } } 

Me gusta este enfoque porque hace que el código agradable y modular

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