¿Cómo puedo agregar un elemento de barra de acción durante el tiempo de ejecución?
¿Cómo puedo agregar un artículo de barra de acción durante el tiempo de ejecución?
Estoy usando actionBarSherlock
, y necesito agregar algunos botones cuando ocurre un evento (obtener algunos textos de un RSS, por ejemplo). No puedo confiar en un xml fijo.
- Mostrar desplegable programaticamente en ActionBar / ActionBarSherlock
- Android Viewpager como Galería de imágenes de diapositivas
- Comportamiento personalizado Modo de acción contextual
- Utilizar ActionBarSherlock y ViewPagerIndicator de forma síncrona no compilará
- WindowBackground no cambia con el tema
- ActionBarSherlock no admite cuadros de diálogo de alerta de luz-tema?
- Desplazamiento de títulos como en Google Play
- ViewPager + FragmentStatePagerAdapter: ViewPager deja de funcionar cuando cambia la orientación de la pantalla
- Android 2.0: Biblioteca de Actionbar de soporte (librería de soporte appcompat v7 sin recursos): No se encontró recurso @ style / Theme.AppCompat.Light.DarkActionBar
- ¿Cómo agrego un proyecto de biblioteca a Android Studio?
- Restaurar ActionMode después del cambio de orientación
- Uso del icono en la parte superior izquierda de ActionBarSherlock para navegar
- Actionbarsherlock - cambia el color de la línea de acción
Puede crear el menú en código como este:
/*************************************/ /* Create the actionbar options menu */ /*************************************/ @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, 0, 0, "History").setIcon(R.drawable.ic_menu_recent_history) .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); menu.add(0, 1, 0, "Settings").setIcon(R.drawable.ic_menu_manage) .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); return true; }
Comprobación interna de un booleano.
Tendrá que llamar a supportInvalidateOptionsMenu () para volver a crear el menú.
Puede mantener un indicador que determine si necesita mostrar el botón
boolean hasRss = false;
Entonces, anule el método onCreateOptionsMenu (menú Menú) y compruebe si hasRss es true o false. Si es cierto, agregue su botón para hacer lo que sea. A continuación, puede agregar los botones normales que desea siempre aparecer sin importar si tiene el RSS o no
@Override public boolean onCreateOptionsMenu(Menu menu) { if (hasRss) { menu.add(Menu.NONE, 0, Menu.NONE, "View RSS").setIcon(R.drawable.ic_menu_view) .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); } menu.add(Menu.NONE, 1, Menu.NONE, "Normal button that is always there").setIcon(R.drawable.ic_menu_button) .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); }
Usted tendrá que fijar su valor de hasRss = true cada vez que usted recupera sus valores y llama invalidateOptionsMenu();
Volver a cargar los elementos del menú de la barra de acción