3.2 Actionbar

Cómo colocar botones, configuraciones, titulo y botón atrás en el ActionBar?

El ActionBar en Android es la barra que se encuentra en la parte superior de la pantalla o de cada Activity, en el que podemos encontrar el título del Activity, Botón hacia atrás y el menú con las opciones que queramos.

Actionbar

actionbar

El Activity cuando lo agregamos ya tiene por defecto el ActionBar y ésta sólo contiene el título que se le pone cuando creamos el Activity. A continuación vemos cómo agregar estos controles que son de mucha utilidad.

Primero veremos como cambiar el titulo del Activity, se puede hacer de dos formas, desde el archivo AndroidManifest donde se encuentra información de todos los Activitys de nuestra Aplicación y en tiempo de ejecución desde código.

Desde AndroidManifest

<activity android:name=".TextViewActivity" android:label="TextView"/>

Desde código, en tiempo de ejecución.

setTitle("Calendar");

Ahora pondremos el botón hacia atrás desde el código.

//en el evento OnCreate para mostrar el botón atras
 getSupportActionBar().setDisplayHomeAsUpEnabled(true);

//Para controlar la acción que realizará el botón
@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                Intent i = new Intent(CalendarActivity.this,Principal.class);
                startActivity(i);
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

Lo que sigue es poner el menú en el que podemos elegir cuál de las opciones dejamos visibles con un icono representativo y cuales funciones dejamos en la lista de configuraciones a las que podemos acceder desde el icono de los tres puntos que representan el menú de configuraciones.

Actionbar

Primero debemos confirmar si tenemos en nuestro proyecto la carpeta con el nombre menu, si no la tenemos la podemos crear, esto dentro del directorio “res” y dentro un archivo de tipo “menu resourse file”, cabe decir que el contenido que pongamos dentro será visto en el Activity donde lo mandamos llamar, así que si necesitamos opciones de menú diferentes en cada Activity debemos crear un menú para usarlo en cada Activity.

Actionbar

Los items los agregamos en el archivo que acabamos de crear, en éste caso el archivo botones.xml que usaré en el Activity ButtonActivity

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item android:id="@+id/MenuAgregar" android:icon="@android:drawable/ic_menu_add" app:showAsAction="always"   android:title="Agregar"/>
    <item android:id="@+id/MenuRegresar" android:icon="@android:drawable/ic_menu_revert" app:showAsAction="always|withText" android:title="Regresar"/>
    <item  android:id="@+id/MenuEnviar" android:icon="@android:drawable/ic_dialog_info" app:showAsAction="never" android:title="Enviar"></item>
    <item android:id="@+id/MenuGuardar"  app:showAsAction="never" android:title="Guardar"/>

</menu>

Vemos que la propiedad app:showAction presenta diferentes valores que explicaré a continuación:

“always” significa que se debe mostrar siempre, es decir, en el ActionBar.

“always|withText” nos muestra el icono pero cuando hay espacio muestra el texto del title como se muestra en la imagen de arriba con el botón Regresar.

“never” significa que no se muestre ésta opción nunca quedando oculta en el menú de los tres puntos.