BÚSCAME EN: Last FM Filmaffinity Facebook Youtuve Blogger Twitter Feed Instagram
Puedes acceder a este blog mediante las direcciones www.ignacionario.com o ignacionario.blogspot.com. También puedes contactar a través de la dirección de correo electrónico contacto@ignacionario.com.
Mostrando entradas con la etiqueta Opciones de menú. Mostrar todas las entradas
Mostrando entradas con la etiqueta Opciones de menú. Mostrar todas las entradas

22 de abril de 2011

Android (V): Crear opciones de menú

Android: Desarrollo de opciones de menú en layouts (Activity)

¡Ya iba tocando dejar por aquí un nuevo post sobre desarrollo en Android!, esta vez voy a intentar explicar algo bastante sencillo pero al mismo tiempo muy útil y versátil en las aplicaciones: las opciones de menú dentro de cada pantalla, donde normalmente añadimos las pequeñas funcionalidades que no tienen que mostrarse siempre en pantalla pero que de vez en cuando usamos, lo explicaré en 4 sencillos pasos:

  • Crear imágenes de icono (opcional)
  • Crear elemento XML con las diferentes opciones de menú
  • Añadir opciones al Activity deseado
  • Añadir funcionalidad a cada una de las opciones de menú

1. Crear los iconos para cada opción de menú (opcional)

Si queremos que el tamaño de la imagen cambie según la resolución del dispositivo que ejecuta la aplicación deberemos generar distintos tamaños de cada imagen. En general las aplicaciones suelen tener imágenes para tres resoluciones como mínimo: HDPI (alta), MDPI (media) y LDPI (baja), a continuación os dejo una relación de las distintas resoluciones existentes para aplicaciones android. Debemos tener cada imagen para cada resolución dentro de la carpeta correspondiente en res: drawable-hdpi, drawable-mdpi drawable-ldpi.

Android: Diferentes carpetas de imagenes según la resolución
Dando soporte a distintas resoluciones de pantalla (clic aquí para más info)

2. Crear elemento XML que contiene las diferentes opciones de menú

El siguiente paso necesario es definir un medio desde el cual leamos las opciones de menú. Puede configurarse desde una base de datos, desde el propio código o (la parte más sencilla a mi parecer) desde un fichero XML dentro de la carpeta menu, en res.

Como costumbre, suelo nombrar a los ficheros XML que forman parte de un menú con el mismo nombre que el layout al que van a pertenecer y así tener mejor organizados los ficheros a la hora de reconocerlos, esto es muy aconsejable sobre todo si la aplicación va a tener una estructura de ficheros bastante amplias. Como en este caso el menú va a ir asociado al layout home, lo he nombrado home_menu.xml.
Android: Desarrollo de opciones de menú en layouts (Activity) - Estructura de carpetas
Estructura de ficheros del proyecto
El contenido de home_menu.xml tiene la siguiente estructura:


<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
      <item
            android:id="@+id/btConfig"
            android:title="Configuración"
            android:icon="@drawable/config">
      </item>
      <item
            android:id="@+id/btInfo"
            android:title="Acerca de"
            android:icon="@drawable/info">
      </item>
</menu>


3. Añadir las opciones de menú dentro del Activity deseado

Este paso es bastante sencillo, sólo debemos sobreescribir el método onCreateOptionsMenu dentro del Activity que implemente el menú e indicarle el documento XML que contiene dichas opciones.

// Añadiendo las opciones de menú
      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
          MenuInflater inflater = getMenuInflater();
          inflater.inflate(R.menu.home_menu, menu);
          return true;
      }

Android: Desarrollo de opciones de menú en layouts (Activity) - Resultado final
Vista final de la pantalla cuando se pulsa el botón MENÚ

4. Dando funcionalidad a cada una de las opciones de menú

El código que muestra a continuación muestra un mensaje de texto diferente según que opción se pulsa, se deberá cambiar el contenido de cada case según la funcionalidad que queremos dar a la aplicación: Acceder a la base de datos para modificar algún registro, cambiar de Activity, etc.

// Añadiendo funcionalidad a las opciones de menú
@Override
public boolean onOptionsItemSelected(MenuItem item) {
   switch (item.getItemId()) {
        case R.id.btConfig:
           Toast.makeText(getApplicationContext(), "Has pulsado Config"
                 Toast.LENGTH_SHORT).show();
           return true;
        case R.id.btInfo:
           Toast.makeText(getApplicationContext(), "Has pulsado la opción 
                 Info"Toast.LENGTH_SHORT).show();
           return true;
        default:
           return super.onOptionsItemSelected(item);
    }
}


SIGUE LEYENDO
Related Posts Plugin for WordPress, Blogger...