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
En este ejemplo cuando llamamos a "Llamar Activity1" , debemos introducir codigo en la siguiente parte
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
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