[MÚSICA] [MÚSICA] Okey, entonces ahora veamos cómo crear un menú de contexto. Lo que voy a hacer es voy ir a mi activity_main.xml y recuerda que un menú de contexto es aquél menú que aparece cuando tú quedas bastante tiempo presionando un elemento, un largo tiempo presionando un elemento, y entonces sale el menú de contexto. Lo que vamos a hacer es que este Hello world, mientras, si yo me quedo presionándolo un momento, de pronto, aparezca nuestro menú de contexto. ¿Okey? Entonces, vamos, primeramente, a declarar las opciones del menú de contexto. Entonces you tengo aquà mi carpeta menú, menú de opciones, recuerda que es para un menu_opciones, que aparece en la parte superior, ahora voy a darle clic derecho, New, Menu resource file y le voy a decir menú de contexto. ¿Okey? Le damos enter. you tengo aquà mi menú de contexto, y entonces, únicamente voy a declarar un par de Ãtems. Si quiero, vamos, nada más vamos a cambiar ese texto de Hello world, le vamos a poner el nombre de una persona y a lo mejor vamos a decir que si alguien deja presionado ese texto, pues puedes, por un lado, eliminar el elemento, o por otro lado, podrÃas editar el elemento, ¿okey? Entonces vamos a declarar nuestro Ãtem, vamos a declarar dos Ãtems. Recuerda, primeramente colocamos, android:id y colocaremos mEditar. Y al otro, le colocaremos android mEliminar. PodrÃamos manejarlos en inglés, delete, nos viene aquÃ, Edit y Delete. Bien. Ahora, vamos a nuestro archivo strings para colocar los textos que deben tener estos menús. Voy a mi archivo strings, strings, colocaré menu_edit, vamos a poner Edit string menu_delete, Delete. AsÃ, listo. you están mis textos. Regreso a mi menú de contexto, y ahora, con la propiedad android:title@string menu_edit, y el otro android:title @string menu_delete. you tengo mis dos menús listos. Ahora vamos, precisamente, a darles vida a estos menús. Vamos a nuestro archivo MainActivity. Entonces tenemos aquà nuestro archivo MainActivity, tenemos nuestros antiguos métodos onCreateOptionsMenu y onOptionsItemSelected. Debajo de ese método voy a sobreescribir el método onCreateContextMenu, onCreate ContextMenu. Aquà me aparece. [AUDIO EN BLANCO] Voy a dejar ese super tal cual como está, y este método lo que hará precisamente será crearnos o mostrarnos un menú de contexto, crear el menú de contexto cuando dejes presionado un largo tiempo algún view, algún elemento, puede ser un botón, puede ser un TextView, como lo vamos a hacer ahora, puede ser una imagen, puede ser lo que tú quieras. Entonces, primeramente voy a colocar mi Menu Inflater. Voy a colocar aquà inflater = new, MenuInflater y le vamos a pasar el contexto this. Ahora, a través de un switch, como la forma anterior donde tenemos nuestro onCreateOptionsMenu, también aquà vamos a getMenuInflater y vamos a inflar un menú, pero en nuestro caso un menú de contexto. Entonces vamos a ponerle getMenuInflater .inflate y entonces va a recibir el recurso. Vamos a poner R.menu.menu de contexto, ese es el menú que necesitamos, y, por último, pasamos el objeto menu, que, si observas en comparación con el anterior, el anterior era un objeto de tipo menú. Un menú simple, un menú por default. Este objeto que vamos a pasar es un menú de tipo contexto, menú, y listo. Aquà lo que estará haciendo, será que nos está creando un menú de contexto. Bien. Entonces, ahora vamos a nuestro activity_main. Vamos a hacer que este TextView pues esté preparado para levantar el menú de contexto, ¿okey? El método que acabamos de crear. Entonces, únicamente, voy a cambiarle primeramente el texto, a decir TextView, y le voy a poner texto texto, voy a poner nombre, nombre de una persona. Mira voy a poner por ejemplo Anahà Salgado, ¿okey? Un nombre de una persona. Vamos a nuestra vista del texto y le quitamos @string nombre de una persona. ¿Okey? Vamos a hacer este texto un poco más grande para que sea fácilmente pues que lo podamos, le podamos dar tap fácilmente. A ver si podemos, vamos a trabajar algo más grande, como unos 30 sp, ajá, está perfecto. Me llevaré esto para mi archivo dimens. Vamos a poner dimens texto de la persona aquÃ. Y le ponemos acá @dimen texto de la persona, ¿okey? Bien, ahà está, you está grande, you, podrÃa darle clic fácilmente. Y entonces ahora sà vamos a poner este elemento listo para que levante un menú de contexto cuando lo presionemos varias veces. Vamos a nuestro MainActivity que es quien controla este layout, MainActivity. En nuestro método onCreate, nuestro método onCreate, sencillo, el que crea nuestra actividad. Ahà vamos a colocar la instrucción, vamos a poner nuestro TextView, vamos a poner nuestro TextView en órbita, ¿okey? Entonces voy a poner tvNombre, qué text tiene, no le hemos colocado un Id, entonces, vamos a ponerle el Id, porque lo vamos a necesitar, Id tvNombre, ¿okey? TvNombre. Regreso a mi Main Activity y ahora sÃ, you puedo hacer mi casting TextView findViewById R.id .tvNombre, you está, punto y coma, y con la instrucción registerForContextMenu le paso el View, en nuestro caso tvNombre, ese TextView. Y entonces, con esta instrucción, yo you he colocado ese menú disponible. you he colocado este View disponible para que levante un menú de contexto, ¿okey? Entonces, vamos a correr esto, vamos a ver cómo se ve hasta este momento. Nos falta, también, switchear, pues cuál es el menú que han dado clic. Y para eso lo haremos con otro, otro método que veremos más adelante. Okey, nuestra aplicación you va a empezar a correr. Ahà está. Y si dejamos presionado un largo tiempo, Anahà Salgado, nos aparece el menú que acabamos de quedar, de hacer, Edit y Delete. Lo haré de nuevo, y ahà está. Edit y Delete. Perfecto. Vamos a cachar cuál de estos dos menús es el que he seleccionado, ¿okey? O Delete o Edit. Entonces, vamos a sobreescribir, debajo de nuestro OnCreateContextMenu, vamos a sobreescribir el método onCreateItem, perdón, es onContext, onContextItemSelect. ¿Okey? O sea qué item de contexto he seleccionado y como observas aquà también me trae el MenuItem. Y, exactamente utilizando la misma lógica que hicimos para nuestro menú de opciones, a través de un switch, podemos estar verificando cuál es el elemento que le dieron, que le dieron clic. Le preguntamos al item recibido, le preguntamos cuál es su Id. Coloco case R.id. alguno de mis menús mEdit: y puedo hacer break. ¿Okey? Case R.id. Vamos a hacer esto aquÃ, .mDelete colocamos break. Bien, y de la misma manera que en el anterior, aquà es donde puedo colocar mi Intent, a dónde quiero que vaya, o, no sé, probablemente no solamente esté yendo a otra pantalla en particular, probablemente sea no sé, descargar un archivo, ir a un sitio web, consultar una página, no sé, etcétera, lo que esté marcado para tu menú. Todo eso lo colocamos dentro de esto. Solamente para mostrarte, voy a colocar un mensaje de tipo Toast donde vamos a pasar como primer parámetro el contexto, y voy a ponerle Menu Editar. Vamos a utilizar nuestra, nuestro strings, ¿okey? Vamos a utilizar los textos que aparecen aquÃ, menu_edit y menu_delete para mostrarlos en nuestro archivo strings. Voy a ponerle GetResources.getString R.string.menu_edit. Para el de Edit colocamos ahora la longitud, podemos decir que sea short, y por último, hacemos .show. Lo mismo en el otro. Voy a copiar toda esta lÃnea. Recuerda, el primer parámetro es el contexto, el segundo parámetro es el texto a mostrar que en nuestro caso, estamos tomando el texto, estamos tomando el texto de nuestro recurso string y lo solicitamos de esta forma, getResources.getString. El tercer parámetro es la duración del mensaje, y por último, mostramos nuestro mensaje. Vamos a correr esto, vamos a correrlo, para verificar que realmente estemos dando clic en el menú adecuado. Voy a dejar presionado Anahà Salgado, Edit, y me dice que de clic en Edit, de nuevo Delete y me dice que, okey, aquà yo puse el menú de settings pero realmente pues bueno, aquà tienes que colocar delete. Y básicamente de esta forma es cómo estamos manejando ahora menús de contexto. Nuevamente, dejo presionado, Delete, ahora dice Delete, de nuevo, Edit, y ahora dice Edit. Esto es una forma en cómo podemos manejar un menú de contexto. [MÚSICA]