martes, 31 de marzo de 2015

Creando Menu en nuestra Aplicacion


En la sesion anterior les enseñamos la manera de crear una sencilla aplicacion que muestre en la pantalla de nuestro dispositivo una linea de texto

Esta vez mejoraremos esa aplicacion añadiendo un menu y algunas cosas adicionales


@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();

if (id == R.id.action_settings) {
//Aqui añadiremos codigo
return true;
}
return super.onOptionsItemSelected(item);

}

Esta sentencias crea nuestro menu en nuestra aplicacion de ejemplo, ahora explicaremos con mas detalle

El primer metodo onCreateOptionMenu, nos sirvirar para llamar al xml donde se encuentra el menu de nuestra aplicacion

Aqui el codigo del XML del menu



Aqui podemos apreciar que cada item es una opcion del menu, y el titulo usa la syntax @string/action_act1 y  @string/action_act2. Esto significa que la descripcion del menu se encuentra en el archivo String.xml, esto se utiliza mucho para tener mayor orden de nuestros textos y para internacionalizacion de nuestras aplicaciones, en futuras lecciones hablaremos con mas detalle sobre internacionalizacion usando el String.xml



A continuacion podemos ver como debe ser la estructura de archivos xmls dentro de nuestro proyecto

Ahora tambien vemos la etiqueta app:showAsAction = "never", esto es la syntax por default paa mostrar las opciones del menu de esta manera como vemos en la siguiente imagen




Ahora para cada opcion del menu debe ejecutar algunas lineas de codigo

@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_menu1) {
//Aqui añadiremos codigo
return true;
}
else if (id == R.id.action_menu2) {
//Aqui añadiremos codigo
return true;
}
return super.onOptionsItemSelected(item);
}

En este ejemplo cuando llamamos a "Llamar Activity1" , debemos introducir codigo en la siguiente parte


if (id == R.id.action_menu1) {
//Aqui añadiremos codigo
return true;
}

Si queremos llamar a otro activity desde el menu1, entonces el codigo quedaria de esta manera

if (id == R.id.action_menu1) {
//Aqui añadiremos codigo
Intent intent = new Intent(this, MainActivity2.class);
startActivity(intent);
return true;

}

La sentencia startActivity la usamos para ejecutar otro screen, en este caso MainActivity2.java

Ahora si queremos mostrar el menus con otro look podemos cambiar
app:showAsAction = "never" por  app:showAsAction="always", y veremos el menu de esta manera como muestra la imagen


De esta manera ya tenemos nuestro menu de otra manera, en la proxima sesion hablaremos mas sobre los layouts y algunos de los controles UI mas usados, asi como otros temas

No hay comentarios:

Publicar un comentario