DEV Community

Rodrigo Garcia Trejo
Rodrigo Garcia Trejo

Posted on • Updated on

Minitutorial Android Studio: ¿Como agregar un menú?

Bienvenidos a un minitutorial de Android Studio

El día de hoy les mostrare como agregar un menú a su aplicación de android studio, ¡Vamos al código!

Menu.xml

Paso 1: En la carpeta res agregaremos un nuevo directorio al que le pondremos como titulo menu

Agregando un nuevo directorio

Dentro de esa carpeta agregaremos un menú dando clic derecho en el nuevo directorio y seleccionar la opcion agregar "Menu Resource File" el cual nos generará un archivo .xml al que llamaremos menu.xml

Agregando un nuevo archivo tipo Menu Resource File

Dentro de este archivo agregaremos una elemento tipo este elemento lo nombraremos "Contacto" este valor viene de la carpeta values/strings.xml (Es buena practica crear todos los textos que se utilizarán en nuestra aplicación en esta sección) y se lo asignamos al item que acabamos de crear.

Puedes agregar tantos ítems como desees para este ejemplo solo agregaremos 1

    <item
        android:id="@+id/item1"
        android:title="@string/Contacto" />

Enter fullscreen mode Exit fullscreen mode

Quedando de la siguiente manera el menu.xml

Ejemplo del menu.xml

MainActivity

Paso 2: En el MainActivity agregaremos un conjunto de metodos.

onCreateOptionsMenu

Este método nos servirá para poder agregar el menú que creamos a nuestra aplicación creando un elemento tipo MenuInflater


    public boolean onCreateOptionsMenu(Menu menu){
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu, menu);
        return true;

    }

Enter fullscreen mode Exit fullscreen mode

Posteriormente agregaremos un switch donde agregaremos tantos case como items de nuestro menu agreguemos en el menu.xml en este caso solo tengo 1 item, por eso solo agregare un case y un metodo que nos permitirá abrir el intent (Activity) correspondiente.

   public boolean onOptionsItemSelected(MenuItem item)
    {
        switch (item.getItemId())
        {
            // En caso de que el id seleccionado sea el de item1 lo enviaremos a Contacto
            case R.id.item1:
            {
                abrirActivityContacto();
                return true;
            }

            default:
                return super.onOptionsItemSelected(item);

        }
    }


Enter fullscreen mode Exit fullscreen mode

Como podrán ver se utiliza el metodo item.getItemId() el cual sirve para obtener el id de la opción seleccionada en el menú, en este caso tengo el id item1 al momento de ser seleccionado se ejecuta el metodo abrirActivityContacto()

abrirActivityContacto()

 public void abrirActivityContacto()
    {
        Intent intent = new Intent(MainActivity.this, Contacto.class);
        startActivity(intent);

    }


Enter fullscreen mode Exit fullscreen mode

Este método ejecutamos una activity con un intent el cual incluye la ubicación donde nos encontramos y a que actividad queremos ir en este caso estamos en MainActivity y queremos ver el activity Contacto.class

AndroidManifest.xml

Ahora para concluir agregaremos una flecha de retroceso en el activity Contacto para retornar a MainActivity, para hacer esto, tenemos que ir al archivo manifest/AndroidManifest.xml donde editaremos el activity Contacto y agregaremos lo siguiente: android:parentActivityName=".MainActivity"

También agregaremos un meta-data donde agregaremos la actividad padre el cual le indicara a donde tiene que retornar.


        <activity
            android:name=".NuevaActivity"
            android:exported="false"
            android:parentActivityName=".MainActivity">
        </activity>

    <meta-data
            android:name="@android.support.PARENT_ACTIVITY"
            android:value=".MainActivity"
            >

        </meta-data>
Enter fullscreen mode Exit fullscreen mode

Listo!, hemos terminado!, ya tenemos nuestro menú dentro de nuestra aplicación, Felicidades!.

Si deseas ver el código en github te dejo el enlace a continuación.

Ver código en github

Top comments (1)

Collapse
 
eliaslider1 profile image
Elias

Ayuda me sale un error en: case R.id.item1:
el error indica constant expression required