Menú
Es gratis
registro
casa  /  Consejo / Cómo agregar un botón de menú en un Android. Cómo abrir y configurar el menú de ingeniería en Android: instrucciones y códigos secretos

Cómo agregar un botón de menú en un Android. Cómo abrir y configurar el menú de ingeniería en Android: instrucciones y códigos secretos

Entonces, creemos un menú simple hoy para una aplicación de Android. Crear nuevo proyecto. Llámalo Mymenu, haz clic en siguiente. Elija Actividad vacía. Haga clic en finalizar.

El sistema de estudio de Android nos preparará un nuevo proyecto, pasemos a los scripts de gradle. En Build gradle, agregue una nueva implementación. Necesitaremos un paquete

implementación "com.android.support:design:26.0.0-beta1"

Al menos en mi proyecto. Haga clic en proyecto de sincronización.

Elementos de menú

Vayamos a la carpeta Res y creemos una nueva carpeta de recursos de Andriod con el tipo de recurso: el menú. En él, cree un nuevo recurso de archivo de menú. Asigne el nombre del archivo, así como el nombre de la carpeta - menú.

Al arrastrar y soltar en nuestro menú principal, agregue 3 piezas de MenuItem.

En el archivo strings.xml, escriba un nuevo nombre para los elementos del menú, creando valores de cadena adicionales para ellos.

Deje que el elemento 1 sea el elemento 1, el elemento 2, el elemento 2, y el elemento 3, sea Salir.

Párrafo 1 Punto 2 Salida

En la versión de texto de menu.xml, asignamos los nombres de strings.xml a nuestros elementos. También para cada elemento agregaremos Android: ID llamado action1, action2, action3,

para interactuar con estos elementos. La acción número 1 será responsable de algo, algún tipo de reacción, al hacer clic en la Acción 2, respectivamente, será responsable de otras acciones, la Acción 3 será responsable de salir de la aplicación.

En el archivo MainActivity, escribiremos varias funciones para trabajar con el menú:

onCreateOptionsMenu @Override public boolean onCreateOptionsMenu (Menú del menú) (getMenuInflater (). inflate (R.menu.menu, menu); return true;) onOptionsItemSelected @Override public boolean onOptionsItemSelected (Item item \u003d) switch (id) (case R.id.action1: txt.setText (R.string.item1); return true; case R.id.action2: txt.setText (R.string.item2); return true; case R. id.action3: txt.setText (R.string.item3); finish (); return true;) return super.onOptionsItemSelected (item);)

Declare una variable de tipo TextView txt y enlácela al elemento TextView, en onCreate via

txt \u003d (TextView) findViewById (R.id.txt),

en el diseño activity_main.xml agregándolo

android: id \u003d "@ + id / txt"

para mostrar texto.

Ejecute nuestra aplicación en el emulador. Como puede ver, los elementos del menú aparecen, cuando hace clic en el valor del Elemento 1 o 2, el texto cambia a Elemento 1 o Elemento 2, cuando hace clic en el botón Salir, aparece el texto Salir y la aplicación se cierra.

Diseño del menú

Todo parece estar bien, Sin embargo, como siempre en Android Estudio dado el menú solo funcionará en el emulador y, por lo tanto, agregaremos un pequeño código al archivo styles.xml, y antes de eso, en AndroidManifest.xml cambiaremos

android: theme \u003d "@ style / AppTheme"

android: theme \u003d "@ style / AppTheme.NoActionBar"

que dice que el nuevo estilo sin ActionBar. También en MainActivity onCreate agregamos la barra de herramientas variable con el tipo ToolBar. Defínalo a través de toolbar \u003d (Toolbar) findViewById (R.id.toolbar), y habilita el soporte para setSupportActionBar (barra de herramientas).

En el diseño activity_main.xml antes de TextView, agregue el siguiente código:

Conecte estos widgets a la importación de nuestra aplicación.

importar android.support.v7.widget.Toolbar;

Presione Alt + Enter, y agregaremos, la importación de nuestra aplicación se actualizará. Puede que tenga que hacerlo varias veces para conectar el widget. Clic en Guardar.

Ahora podemos ejecutar nuestra aplicación en el emulador. Todo se ve exactamente igual, pero sin este código, nuestra aplicación no puede instalarse en un dispositivo real. Hagamos una solicitud firmada.

Érase una vez, hace unos 5 años, los dispositivos con el sistema operativo Android estaban ganando popularidad rápidamente. Fue un buen momento, el mundo estaba superando la crisis, había muchas cosas interesantes por venir, y cada unidad tenía un botón de Menú.
Después de 2 años, los chicos de Android informaron que el botón "menú" en el cuerpo del dispositivo ya no está de moda y puede estar sin él. Desde entonces, cada uno de nosotros (los Gremios de Desarrolladores) sabe cómo abrir el menú en la gran mayoría de los dispositivos Android.
Esto puede parecer un acordeón de botón terrible, aun así, pero la semana pasada pasamos 2 horas de nuestra vida explicándole esto al usuario. Era imposible soportar esto, así que a continuación les doy una descripción de cómo llamar a la función de menú en dispositivos Android.
Así es como se ven los botones de menú mecánico en los dispositivos más comunes:

Además, en la mayoría de los casos, un toque breve es suficiente para llamar a la función de menú. Sin embargo, a menudo se puede agregar una llamada de menú al botón de selección. ejecución de aplicaciones. Se parece a esto:


En este caso, se abrirá el menú. pulsación larga solamente (llamado clic largo)! Es decir no solo tocó con el dedo, sino que tocó y sostuvo. Muchos dicen después de eso ¡Guau!

Aconsejo a los propietarios de tabletas que presten atención al área de trabajo de la pantalla, es allí donde a menudo hay botones, incluido el Menú.


Además, no siempre es lo más correcto, pero este botón se ve exactamente así.
Sobre el Últimas Versiones El botón de menú del sistema operativo Android se ve así.

Hay muchos funciones ocultaslo cual puede ser bastante útil. System UI Tuner es uno de ellos. Después de activar este menú, el usuario obtiene más opciones en términos de personalización. interfaz de Android. En uno de los artículos sobre Treshbox ya estamos.

Algunos desarrolladores ya han adaptado System UI Tuner a las necesidades de los usuarios comunes. Por ejemplo, que estaba disponible en versión anterior Android utiliza el sintonizador de UI para agregar botones personalizados al menú rápido, que aparece junto con la "cortina" de notificaciones. Lo mejor es que en Android 6.0 Marshmallow, el uso de la Configuración rápida personalizada no requiere acceso de root.

Cómo funciona

En primer lugar, debe activar el menú del sintonizador de interfaz de usuario del sistema, que funciona solo en versión de Android 6.0 Malvavisco. Algunas versiones de vista previa de Android M no han recibido esta función. Puede leer acerca de la activación de UI Tuner en nuestro artículo correspondiente, pero si no desea ir a algún lugar de este material, entonces: abra completamente la "cortina" superior con acciones rápidas y notificaciones, mantenga presionado el botón de engranaje durante 5-7 segundos, lo que lleva todo está en el menú de configuración, System UI Tuner está activado. Ahora en el menú general. configuración de Android Ha aparecido el elemento correspondiente, pero prácticamente no lo necesitará. La aplicación de Configuración rápida personalizada hace todo por usted.


A continuación, instale la aplicación de configuración rápida personalizada, que está disponible de forma gratuita, pero con publicidad. Ella es eliminada a través de compras nacionales: 99 rublos.


Después de instalar la aplicación, se puede agregar un botón personalizado con una acción en el menú superior con un par de acciones. Al hacer clic en Configuración rápida personalizada adicional, puede seleccionar el nombre del botón, su acción es abrir cualquier página web, iniciar la aplicación, ir a algunos submenús de configuración o activar el módulo. Puede seleccionar un icono para el botón (hay un total de 1,200 elementos estándar disponibles; se admiten los personalizados), así como una acción adicional con una pulsación larga. Por ejemplo, puede crear un enlace rápido al Treshbox, y se abrirá una pulsación larga o cualquier otro sitio es algo muy conveniente.

Capacidades

También puede hacer una acción rápida que conecta el dispositivo a un Wi-Fi específico, está presente en la lista de guardados. Los botones personalizados con el inicio de aplicaciones serán muy útiles: no es necesario cambiar al escritorio para abrir programa deseado.

Las posibilidades en términos de crear acciones rápidas son muy limitadas: solo puede especificar una conexión a un determinado red Wi Fi o un dispositivo Bluetooth. Aquí todo se basa en la funcionalidad de System UI Tuner.


En la versión Pro de la aplicación, está disponible la adición de accesos directos funcionales con acciones rápidas. Hay soporte IFTTT. Vale la pena señalar que todos los botones personalizados agregados mediante la Configuración rápida personalizada no funcionan en la pantalla de bloqueo, simplemente no aparecen en la "cortina", lo cual es bastante esperado.

Recuerde que todas estas características también están disponibles en Android 5.0 / 5.1, pero son necesarias para esto. El desarrollador señala que la Configuración rápida personalizada no usa batería adicional: el programa se ejecuta una vez al inicio del sistema y los botones personalizados se actualizan solo después de que el usuario lo haga.

Es bueno ver cómo funciona sistema Android con cada nueva versión asume funciones que anteriormente solo estaban disponibles con derechos de root. Esperamos que Google no elimine la función del sintonizador de interfaz de usuario del sistema en una futura actualización de Android 6.0.1 o 6.1. Por cierto, ¿ya has actualizado a Marshmallow?

Android es compatible con varios tipos de menús. Primero, hay un botón separado en el teléfono Menú (en teléfonos más antiguos), haciendo clic en el cual aparece un menú. En los dispositivos nuevos, se eliminó un botón separado, reemplazándolo con un icono de menú en forma de tres puntos en una orientación vertical. El segundo tipo es el menú contextual que aparece cuando presiona y mantiene el dedo en la pantalla en el lugar correcto (también puede presionar y mantener presionado el botón central del teléfono). Menú de contexto a su vez, puede tener un submenú. Hoy nos familiarizaremos con el primer tipo de menú. Este artículo discutirá el trabajo con menús en dispositivos nuevos en ejecutando Android 4.0 y superior.

En la plantilla Actividad vacía no hay menú, así que lo crearemos nosotros mismos. Esto lo ayudará a comprender el principio del trabajo y a tener una idea general del proyecto. Recordar los nombres de clases, métodos y códigos para procesar la selección de elementos del menú es opcional. En otras plantillas, el menú estará integrado y puede usarlo de inmediato.

Crea un nuevo proyecto basado en Actividad vacía y ejecutarlo No hay menú todavía.

Crear algunos recursos de cadena en un archivo res / values \u200b\u200b/ strings.xmlquién será responsable de los elementos del menú:

Configuraciones Gato Gato gatito

Ahora crea nueva carpeta menú en carpeta res res, | Nuevo | Directorio) A continuación, cree un archivo en la carpeta creada menu_main.xml - el nombre indica que el menú se refiere a la actividad principal Actividad principal (clic derecho en la carpeta menú | Nuevo | Archivo de recursos del menú) Si crea una aplicación con varias pantallas, cada actividad tendrá un menú separado con su propia configuración. Mientras abre el archivo menu_main.xml y agregue nuestro código a la plantilla resultante:

Abrir documento Actividad principal. Ahora solo tiene un método onCreate (). Agregar un nuevo método onCreateOptionsMenu (). Es este método el responsable de la aparición del menú de la actividad. Elige en el menú del estudio Código El | y en la siguiente ventana comience a ingresar el nombre del método por las primeras letras. Puede ingresar por las primeras letras mayúsculas, es decir ocom ( onorte Creaccionar Options METROenu) para encontrar rápidamente la línea deseada. Presionar el botón Okay y obtener el espacio en blanco.

@Override public boolean onCreateOptionsMenu (Menú de menú) (return super.onCreateOptionsMenu (menú);)

Agregamos al código auxiliar un método que toma datos de los recursos del menú y los convierte en elementos de menú en la pantalla.

@Override public boolean onCreateOptionsMenu (Menú de menú) (getMenuInflater (). Inflate (R.menu.menu_main, menu); return true;)

En el método inflar () apuntas al recurso de menú ( R.menu.menu_main) y el objeto de clase Menú.

En inglés, "inflar" se traduce como inflar, es decir De acuerdo con el plan de los desarrolladores de Android, estamos como inflando un objeto, por ejemplo, un menú, con datos. Pero en realidad la palabra "inflar" viene de la frase en plano - Al departamento. Hay una vieja tradición de lanzar un gato al departamento primero, que examina todos los rincones de la casa y declara su consentimiento para vivir en él. Entonces ejecutamos los datos del archivo XML en el objeto MenuInflater.

Ejecuta el proyecto. Ahora, en el lado derecho del encabezado, verá un icono de tres puntos dispuestos en una línea vertical. Haga clic en el icono para ver el elemento del menú. Configuraciones.

No es difícil adivinar el elemento articulo responsable de un elemento de menú separado. Agregamos tres puntos más en el mismo principio, cambiando solo el identificador y el texto del menú:

Ejecute el proyecto e intente abrir el menú nuevamente. Verás tres nuevos artículos.

Parámetros carné de identidad y título No se necesita explicación. Parámetro orderInCategory le permite especificar su orden en qué elementos del menú se muestran. Supongamos que ha creado cinco elementos de menú, pero aún no ha decidido el orden en que se muestran en la pantalla. Para no mover constantemente bloques enteros de código para los elementos del menú en el orden deseado, puede usar esta opción.

Y finalmente, un atributo importante aplicación: showAsAction define el comportamiento del menú en Barra de acciones. Valor nunca significa que el elemento del menú no debe mostrarse en el título, sino solo en el menú emergente, es decir, estar detrás de tres puntos. Si establece el valor siempreentonces el artículo Configuraciones aparecerá inmediatamente en el encabezado de su aplicación. Los valores también están disponibles. ifRooms, withText y collapseActionView. Inténtalo tú mismo. Por ejemplo, ifRoom muestra un elemento de menú si el espacio lo permite. Si hay muchos puntos, solo se interpondrán en el camino. Típicamente, en esta realización, se muestra una palabra o icono muy corto para operaciones frecuentes con el fin de evitar un clic adicional en tres puntos.

Tenga en cuenta el atributo aplicación: showAsActionque se refiere al espacio de nombres xmlns: app \u003d "http://schemas.android.com/apk/res-auto". Hubo un tiempo en que dicho espacio de nombres no existía y el atributo se usaba en proyectos android: showAsAction del espacio de nombres estándar. Si el estudio jura ante un error, edite el código.

Hasta ahora, los elementos del menú no hacen un trabajo útil. Cualquier clic en un elemento simplemente cierra el menú sin consecuencias visibles. Todavía no hemos escrito código para manejar clics.

Selección de elementos del menú.

Aprendimos a crear un menú. Pero si bien es inútil, ya que los elementos del menú no responden a nuestros clics. Otro método se utiliza para procesar clics de elementos de menú. onOptionsItemSelected (). Agregue el método de la misma manera que para el ejemplo anterior. Obtener el espacio en blanco.

@Override public boolean onOptionsItemSelected (elemento MenuItem) (return super.onOptionsItemSelected (elemento);)

Parámetro articulo responsable del elemento del menú. Deberías obtener la identificación del menú a través del método getItemId () y especifique un código para ello. Dado que el menú generalmente consta de varios elementos, es conveniente usar el diseño si / si no o cambiar. Para mostrar información, use una etiqueta de texto. Agregar un componente a la pantalla de actividad Vista de texto. Puede usar disponible Vista de texto con la inscripción "¡Hola Mundo!", solo dale un identificador.

android: id \u003d "@ + id / textView" android: layout_width \u003d "wrap_content" android: layout_height \u003d "wrap_content" android: text \u003d "¡Hola mundo!" /\u003e

Agregue el código al espacio en blanco para el elemento de menú seleccionado:

@Override public boolean onOptionsItemSelected (elemento MenuItem) (// obtiene el identificador del elemento de menú seleccionado int id \u003d item.getItemId (); TextView infoTextView \u003d (TextView) findViewById (R.id.textView); // Operaciones para el cambio de elemento de menú seleccionado ( id) (caso R.id.action_cat1: infoTextView.setText ("¡Elegiste un gato!"); devuelve verdadero; caso R.id.action_cat2: infoTextView.setText ("¡Elegiste un gato!"); devuelve verdadero; caso R. id.action_cat3: infoTextView.setText ("¡Has elegido un gatito!"); return true; predeterminado: return super.onOptionsItemSelected (item);))

Inicie la aplicación, abra el menú y seleccione cualquier elemento del menú. Debería aparecer un mensaje en el cuadro de texto.

Existe forma alternativa a través de XML, similar al procesamiento de clic de botón (desde Android 3.0). Puedes agregar atributo android: onClick en los recursos del menú, y no necesita usar una llamada a método onOptionsItemSelected (). Con ayuda android: onClick Puede especificar el método deseado al elegir un elemento del menú. Agregue este atributo a Configuraciones

Ahora en el código de actividad escribimos lo siguiente:

// el atributo del elemento del menú de configuración se establece en android: onClick \u003d "onSettingsMenuClick" public void onSettingsMenuClick (elemento MenuItem) (TextView infoTextView \u003d (TextView) findViewById (R.id.textView); infoTextView.setText ("Seleccionó Configuración, mejor elegiría un gato ");)

Interruptores

La apariencia de los elementos del menú se puede cambiar a una vista con interruptores. Para hacer esto, agregue un elemento grupo con atributo android: checkableBehavior \u003d "single":

No veo mucho sentido en este modo. Y no lo consideraremos.

Modo de diseño

Android Studio 2.2 agregó un modo de creación de menú gráfico, que es similar a una barra de herramientas para agregar nuevos componentes a la pantalla. La barra de menú tiene cuatro elementos: Opción del menú, Buscar artículo, Menú, Grupo.

El principio es el mismo, seleccione el elemento deseado y arrástrelo a la pantalla en el área del menú. Si estudiaste la creación manual de menús, entonces este método No será difícil para ti. Con él, puede esbozar rápidamente la estructura del menú y luego corregirla manualmente.