Control dinámico de elementos de acción / menú en ActionBar
¿Hay una manera de desactivar dinámicamente, ocultar, agregar / quitar elementos de menú en ActionBar? Por ejemplo, una acción se deshabilita hasta que el usuario llena un número de teléfono válido en una actividad.
No encontré ningún método útil en ActionBar API, la única manera parece estar usando una vista personalizada en ActionBar.
- Cómo mostrar el fragmento seleccionado en la pestaña de la barra de acción
- La barra de acción de Android nunca se divide en la pantalla de 5.1 "
- Elevación de la barra de acción predeterminada
- Altura de la pantalla sin barra de estado, barra de acción y pestañas
- Evento cuando la vista de búsqueda se expande desde la vista iconificada
- Haga clic en el botón Done de una barra de acciones contextuales
- Cómo cambiar el texto en la barra de acción
- Implementación de tres acciones dentro de una única opción de menú en Android
- Cómo cambiar el icono predeterminado en el SearchView, para ser utilizado en la barra de acción de Android?
- Android Studio "no puede resolove el símbolo 'Tema'"
- Android ActionBar NullPointerException
- Barra de acción El botón Atrás no funciona
- Apariencia de texto personalizada de ActionBar en Android 4.3
Para indicar a ActionBar que actualice sus elementos de menú: invalidateOptionsMenu ()
Luego para activar / desactivar los elementos del menú:
@Override public boolean onPrepareOptionsMenu(Menu menu) { MenuItem item= menu.findItem(R.id.men_1); //depending on your conditions, either enable/disable item.setEnabled(false); super.onPrepareOptionsMenu(menu); return true; }
Y para ocultar la barra de acción que tiene:
getActionBar().hide();
Otra opción: tener un campo en la actividad que almacena el menú. De esta manera es posible llamar a getMenuInflater (). Inflate () y menu.clear () desde cualquier lugar que desee en esta actividad
Por lo tanto, se ve algo así:
class MyActivity extends ActionBarActivity { Menu actionBar; @Override public boolean onCreateOptionsMenu(Menu menu) { actionBar = menu; return true; } //Possible usage void showActionBar1 () { getMenuInflater().inflate(R.menu.menu_1, actionBar); actionBar.findItem(R.id.menu_1_btn_1).setOnMenuItemClickListener(); } void showActionBar2 () { getMenuInflater().inflate(R.menu.menu_2, actionBar); ... } void clearActionBar () { if (actionBar != null) actionBar.clear(); }
- ¿Qué formato es para la cámara de Android con raw pictureCallback?
- Bloquear la transición entre el valor mínimo y el valor máximo en NumberPicker