[MÚSICA] [MÚSICA] Okey. Vamos a ver ahora cómo crear todos nuestros tipos de menús que podemos tener en Android, vamos a crear un menú de opciones, un menú de contexto y también un menú popup. ¿Okey? Voy a comenzar creando un menú de opciones. Sabemos que el menú de opciones es aquél que aparece en la parte superior de nuestra barra, de nuestro ActionBar. Entonces, vamos a comenzar por ahÃ. Primeramente tenemos que decir que un menú, en términos del proyecto, de Android, un menú también se considera un recurso. Tenemos dos formas de crear menús en Android, es a través de recursos XML y la otra es también a través de código Java, solamente código Java. La forma como vamos estar trabajando en este momento es a través de un recurso xml. Entonces, lo primero que tengo que hacer es precisamente crear ese recurso. Entonces, estoy situada en la carpeta res, bueno, antes de esto, simplemente debo decir que tengo un proyecto, he creado un proyecto de Android, un proyecto que se llama MenuOpcionesContextoPopup y lo único que tengo es nuestro Activity por Default y you, es todo lo que tenemos. Entonces, creamos nuestro menú, nuestro menú como recurso. Voy a darle clic derecho en res, New y vamos a colocar Android resource file. Okey. Android resource file. En File name, podemos colocar menú de opciones y en Values aquà vamos a colocar precisamente qué tipo de recurso es el menú que estamos creando o el archivo que estamos creando. Precisamente en la opción de Resource type vamos a colocar que es un tipo Menú y vamos a dar OK. Bien. Entonces, a continuación, you se creó nuestro recurso, simplemente, igualmente es una etiqueta xml y, bueno, podemos comenzar a añadir menús a través de la etiqueta item. Voy a colocar aquà item y cerramos nuestra etiqueta. Okey. Bien. He dejado un espacio porque voy a comenzar a escribir propiedades a este item. Lo primero que voy a ponerle a este item es un Android Id, ¿okey?, un Id. AsÃ. Vamos a hacer un menú de opciones. Únicamente va a tener dos opciones, a lo mejor, podemos decir un menú de About o de Acerca de, de nosostros o acerca de esta aplicación y otro menú, podemos definirlo como un menú de Settings, un menú de configuraciones de la aplicación. Entonces, puedo colocar aquà y puedo poner mAbout y ahorita vamos a continuar escribiendo cosas ahÃ. Mientras tanto, voy a declarar mi siguiente menú, voy a colocar Android:id y vamos a colocar el siguiente que @ + id/mSettings ¿Okey? mSettings, menú Settings. Bien. Lo siguiente que tengo que colocarle a este menú, voy a empezar a dar un par de saltos de lÃnea, para acomodar mejor mis etiquetas y mis propiedades. Bien. Lo siguiente es el texto que va a decir mi menú. Entonces, voy a colocar la propiedad Android:title y iré a continuación a mi archivo Strings, a dar de alta precisamente los textos que van a responder a este menú. Entonces, primero dijimos que debe ser menu_about y vamos a poner About. Posteriormente, tenemos nuestro menú de Settings y vamos a colocar Settings. ¿Okey? Settings. Bien. Entonces, regreso a mi archivo xml de menú de opciones y, con haciendo referencia a mi archivo Strings, voy a colocar el menú About y lo mismo para el menú Settings, Android title, menú Settings. Bien. Como observas, estos son atributos obligatorios. Por lo menos, el tÃtulo es un atributo obligatorio que debe estar ubicado en la etiqueta item. Okey. Entonces, voy a agregar un último parametro, Android: orderInCategory y vamos a ponerle que el orden en la categorÃa, este atributo es básicamente para poder estar ordenando mis menús, tener un ordenamiento, cuál va a aparecer antes, cuál va a aparecer después. Entonces, voy a ponerle que tenga 100. ¿Okey? Y el otro, ese realmente es un número que tú puedes definir, que es libre, que puedes tener, básicamente, puedes basarte en lo que tú quieras para colocar este número. Entonces no hay ningún problema. Okey. you tenemos aquà nuestros menús de opciones. Entonces, ahora debemos ir a implementarlos en nuestro Main Activity. ¿Okey? Tenemos nuestro Layout que hasta ahorita está asÃ, se ve de esta forma. Y la idea es que nuestro menú de opciones va a aparecer, de pronto, tres puntitos en esta zona que está aquà y esto va a responder a nuestro menú de opciones. Colocaremos en nuestro Main Activity. Vamos a sobrescribir el método onCreateOptionsMenu, onCreateOptionsMenu. Este método, como su nombre lo dice, nos va a crear un menú de opciones. ¿Y qué es lo que hará este método? Básicamente, tomar a nuestro layout que acabamos de crear nuestro recurso menú y lo va a inflar en la vista, lo va a mostrar en la vista. Entonces, para esto, en vez de retornar esto que me está diciendo aquÃ, OnCreateOptions Menu, voy a decirle getMenuInflater.inflate y lo que recibe aquà es el recurso que acabamos de definir R.Menu.menu de opciones. Okey. Aquà le vamos a colocar el objeto menú que estamos recibiendo por aquÃ, menú. Este que está aquà es lo que pasamos aquÃ. Y finalmente devolvemos True. Listo, true. [AUDIO EN BLANCO] Okey. Si nosotros creamos, si nosotros corremos esto, you podremos estar viendo un menú de opciones, vamos a correr nuestro proyecto y vamos a ponerlo por aquÃ. Tenemos nuestro teléfono you listo. Vamos a esperar a que se construya. [AUDIO_EN_BLANCO] [AUDIO_EN_BLANCO] [AUDIO_EN_BLANCO] [AUDIO_EN_BLANCO] [AUDIO_EN_BLANCO] Okey. you he terminado de construirlo y entonces, como observamos, you podemos ver en esta zona, you podemos ver nuestros tres puntitos y allà you vemos nuestro menú About y Settings. Bien. Aparece primeramente About y después Settings. Vamos a colocar aquà un poco de movimiento, un poco de acción a estos dos opciones y vamos a controlar las opciones de este menú sobrescribiendo el método on Options onOptionsItemSelected, onOptionsItemSelected. Con este método, aquà es donde nosotros podemos controlar que si selecciono About o si selecciono Settings, qué es lo que va a suceder. ¿Entonces, cómo voy a controlar esto? Bien. Voy a dar un par de Enters en este Return y voy a controlarlo a partir del Id que corresponde a cada elemento. ¿Okey? Recuerdas que para About seleccionamos, definimos más bien, el Id mAbout. Y para Settings definimos el mId, mSettings. Entonces, A partir de estos Ids que definimos es como vamos a poder identificar cuál es el menú que alguien ha seleccionado. Entonces lo haremos a través de un switch, ¿okey? Tenemos que estar comparando cuál es el menú que seleccionaron. Entonces tengo aquà mi switch, lo que va a recibir es si observas, tengo aquà el parámetro MenuItem. Lo que devuelve o más bien lo que recibe este método está recibiendo el Ãtem del menú seleccionado. Entonces quiere decir que éste, quiere decir que cuando yo doy clic en about, ese elemento se pasa como parámetro en este método. Entonces yo you puedo preguntarle al Ãtem, puedo decir Ãtem, getItemId, ¿okey? Yo puedo preguntarle a ese Ãtem por su Id, y lo que me va a devolver, puedo poner case R punto Id. Si el Id es mAbout, entonces, bueno, puedes hacer algo por aquà mientras tanto voy a poner solamente un break. Y con otro case puedo decir si R punto Id es mSettings, el menú settings, entonces pues haz algo. ¿Okey? Bien. Entonces aquà dentro es donde bueno, si yo voy a ir a la ventana de About, pues yo puedo aquà levantar un intent, vamos a crear una segunda actividad, vamos a crear clic derecho new empty activity, y vamos a ponerle Activity About, ¿okey? Activity About y también vamos a crear nuestro Activity Settings. Activity Settings. Activity Settings. Settings. Bien. Entonces simplemente para fines demostrativos vamos a añadir un par de text views, que simplemente digan Activity About y Activity Settings. Entonces esos textos los voy a dar de alta en mi archivo, vamos a poner texto en archivo strings, vamos a poner texto about y vamos a poner About. Podéis reciclar las variables anteriores de menú settings, pero la verdad es que como tienen diferente identificador, no me conviene, no me conviene para mi proyecto. Entonces simplemente voy a colocar aquà un TextView, vamos a ponerle wrap content, wrap content, ponemos su android id TextViewAbout. Y le ponemos su texto. [AUDIO EN BLANCO] About, ¿okey? Este mismo lo voy a copiar, aquà va a aparecer, aquà está About, este mismo lo voy a copiar y lo voy a pegar también en el de Settings. ¿Okey? Simplemente le voy a cambiar los datos Settings, y acá también Settings. Listo. Bien, entonces you tengo mis 2 actividades en menú About, aquà voy a decirle Intent, Intent igual a new, en donde estoy ubicada y a donde quiero ir. Quiero ir a About Activity. ActivityAbout punto class startActivity intent. Y voy a copiar este fragmento de código y lo pegaré por aquà también en Settings, porque básicamente hará lo mismo. Vamos a colocar aquà ActivitySettings, ¿okey? Vamos a cambiarle el nombre al objeto, ¿sÃ? Listo. Entonces podemos correr esto. [AUDIO EN BLANCO] Vamos a esperar. [AUDIO EN BLANCO] Okey, entonces al darle About me está llevando a la pantalla de About. Regreso, al darle Settings me está llevando a la pantalla de Settings. De esa forma, es como yo puedo estar controlando los menús de opciones en mi proyecto. [MÚSICA] [MÚSICA]