FANDOM


Que es un menu?

Los menús son un componente de interfaz de usuario común en muchos tipos de aplicaciones. Para proporcionar una experiencia de usuario familiar y consistente, debe utilizar los menus APIs para presentar las acciones del usuario y otras opciones en sus actividades.

Como se crea un menu y los tipos de menus que nos proporciona android?Editar

Menú de opciones: Este es el conjunto principal de los elementos de menú que posee un objeto de tipo Activity. Es aquel que se desplegará siempre que el usuario oprima el botón MENU. A su vez este tipo de menú tiene dos grupos de opciones de menú. 

Menú de iconos. Que viene siendo la colección de elementos visibles en la parte inferior de la pantalla con sólo pulsar la tecla MENU. Aquí es importante que sepas que se admite un máximo de seis elementos de menú para ser desplegados en primera instancia. Así mismo hay ciertos elementos de menú que soportan iconos y otros que no soportan lo que son checkboxes o radio buttons.

Menú Expandido. Es el que se muestra como una lista vertical de elementos desplegados cuando el usuario presiona la opción MORE del menú de iconos. Este menú sólo existe cuando en el menú de iconos existen más de seis elementos de menú.

Menú contextual. Esta es una lista flotante de elementos de menú que aparecen cuando se realiza una pulsación larga sobre un elemento de tipo View (como puede ser un elemento de una lista).



en esta parte de la actividad nos vamos a referenciar de la aplicacion periodistica que nos brinda la narracion

1
 de las noticias Umano que tenemos en los canales elegidos por gusto propio

Creación de una MENU DE OPCIONES:

Cada vez que este menú se abre por primera vez, lo que hace Android es llamar al método onCreateOptionsMenu() de la clase Activity. Sobreescribe este método en nuestra clase que hereda de Activity y crea el objeto de tipo Menu que nosotros creamos. La manera en la que podemos agregar opciones a un menú es definiéndolas en XML o bien llamando al método add() por cada opción que queramos incluir en el menú. Lo que hace add() es agregar un objeto de tipo MenuItem, y devolvernos un objeto nuevo creado por nosotros; el cual podemos utilizar para establecer propiedades adicionales tales como un icono, un atajo de teclado, y otras configuraciones que necesitemos en nuestra opción.

Hay que saber también que el método add() está sobrecargado, pero por lo general se utiliza aquel que acepta un itemId como argumento, que es un número entero único que nos permite identificar la opción del menú durante la llamada a onCreateOptionMenu().

Cuando un elemento es seleccionado del Menú de Opciones, lo que recibimos en realidad es lo que nos retornará la llamada al método onOptionsItemSelected() del objeto Activity. Lo que no devuelve este método será el objeto MenuItem que se ha seleccionado. Si lo que 

queremos es conocer el id de nuestra opción, podemos hacer uso del método getItemId() que nos retornará el número entero que le fue asignada a esa opción mediante el método add(). Teniendo esta información es como podremos empezar a agregarle instrucciones a cada una de nuestras opciones del menú.

Pasemos entonces a analizar un ejemplo de un Menú de Opciones que he creado para una agenda teléfonica.

Primero declaramos los items en forma de constantes de tipo int ya que como explicamos líneas arriba, cada opción tiene un número que lo identifica de manera única. Por lo que las siguientes dos líneas las escribimos después de que se abre la llave de nuestra clase de tipo Activity.

/*Declares the items*/
private static final int MENU_NEW_CONTACT= Menu.FIRST;
private static final int MENU_QUIT= Menu.FIRST+1;

Posteriormente vamos a sobreescribir el método onCreateOpctionsMenu() para agregar nuestras dos opciones:

/* Creates the menu items */
@Override
public boolean onCreateOptionsMenu(Menu menu) {
       menu.add(0, MENU_NEW_CONTACT, 0, "New Game");
       menu.add(0, MENU_QUIT, 0, "Quit");
       return true;
}

Por lo que nuestra clase deberá verse como sigue:

Menu01
                      

Ahora, para que cada una de nuestras opciones detonen una acción en nuestro programa vamos a ver cómo debemos hacer uso del método onOptionsItemSelected():

/* Handles item selections */
public boolean onOptionsItemSelected(MenuItem item) {
	switch (item.getItemId()) {
		case MENU_NEW_CONTACT:
			newContact();
			return true;
		case MENU_QUIT:
			quit();
			return true;
	}
	return false;
}

Aquí por ejemplo, hemos hecho uso de un switch ya que así podremos discriminar entre cada uno de nuestras opciones con ayuda del parámetro de tipo int que obtendremos al invocar al método getItemId() y manejar así en cada caso una acción diferente. Lo siguiente que vemos es que en cada caso llamamos a un método donde escribiremos las instrucciones que deberá ejecutar nuestro programa. Como este es un ejemplo simplemente ilustrativo del uso de los menús no es necesario gastar mucho tiempo en el contenido de estos métodos, por lo que podrás ver su contenido en la siguiente imagen:

Menu02















ahora bien luego de crear nuestro menu ya debe que dar bien vamos a mostrar una imagen de la aplicacion, es de aclarar que para que la aplicacion que estan creando quede con un aspecto igual de calido que el de la aplicacion debes agregar otras lineas de codigo mas que modificara el entorno visual de la aplicacion

Sin título



























En la imagen se ven referenciado el menu de opciones que en este caso se explico.

SubMenu:

Son los menús que tienen menús hijos, es decir que no se puede hacer clic en él, en vez de eso hay que seleccionar uno de sus «hijos»; habitualmente traen consigo una flecha en la lateral derecha indicando la naturaleza del mismo.

Pasos para crear un submenu en android:

Modificaremos el archivo activity_main.xml de la carpeta res/menu. Podemos eliminar el item que crea por defecto el ADT (menu_settings(Item)

Primero insertamos un item que mostrará el mensaje "Sitios interesantes..." para esto presionamos el botón "Add" y seleccionamos "Item" en Title disponemos "Sitios interesantes..."

Foto118

Presionamos "Add" y seleccionamos "Sub-Menu":

Foto118a

Luego añadimos varios Menu Item al Sub-Menu (uno por cada sitio web a enlazar):

Foto119

La estructura final del menú de opciones debe ser la siguiente:

Foto120

El codigo quedaria asi:

@Override

public boolean onOptionsItemSelected(MenuItem item) {

Intent i;

switch (item.getItemId()) {

case R.id.item2:

i = new Intent("android.intent.action.VIEW",

Uri.parse("http://www.google.com"));

startActivity(i);

break;

case R.id.item3:

i = new Intent("android.intent.action.VIEW",

Uri.parse("http://www.yahoo.com"));

startActivity(i);

break;

case R.id.item4:

i = new Intent("android.intent.action.VIEW",

Uri.parse("http://www.bing.com"));

startActivity(i);

break;

case R.id.item5:

finish();

}

return true;

}

La visualización del submenú en tiempo de ejecución es similar a:

Foto121

Menu Emergente:

Es un menú modal anclado a una Vista. Aparece debajo de la vista de anclaje si hay espacio, o por encima del punto de vista contrario. este menú emergente que no es más que un menú desplegable anclada a una View. En la definición en xml se debe utilizar la opción onClick()  y especificar un método que será lanzado cuando se haga click a ese elemento del menú:

Button
   id="+@id/button1"
   android:layout_width="wrap_content" 
   android:layout_height="wrap_content" 
   android:contentDescription="@string/button_desc"
   android:onClick="showPopup"

Y automáticamente la activity le mostrará el menú indicado de esta forma:

public void showPopup(View v) {
   PopupMenu popup = new PopupMenu(this, v);
   MenuInflater inflater = popup.getMenuInflater();
   inflater.inflate(R.menu.popup_menu, popup.getMenu());
   popup.show();
}

O por lo que también podemos hacer directamente en el onCreate() de tu activity añadir el listener del evento click con el código a ejecutar:

 Button b = (Button) findViewById("button1");
       b.setOnClickListener(new View.OnClickListener() {
                       public void onClick(View v) {
                               showPopup(v);
                       }
               });

Y si ponemos a correrlo le mostrara algo co

mo esto:

Menu popup














Menú Contextual

Un menú contextual ofrece acciones que afectan a un fotograma específico tema o contexto en el interfaz de usuario.Puede proporcionar un menú contextual de cualquier punto de vista, pero se usan con más frecuencia para los elementos de un ListView , GridView , u otras colecciones de vista en el que el usuario puede realizar acciones directas en cada artículo.

Hay dos maneras de proporcionar acciones contextuales: 

En un menú contextual flotante . Un menú aparece como una lista de elementos de menú flotante (similar a un cuadro de diálogo) cuando el usuario realiza una larga clic (pulsar prolongadamente) en una vista que declara el apoyo a un menú contextual.

modo de acción contextual . Este modo es una implementación del sistema de ActionMode que muestra una barra de acción contextual en la parte superior de la pantalla con los elementos de acción que afectan el elemento (s) seleccionado. Cuando este modo está activado, los usuarios pueden realizar una acción en varios elementos a la vez (si su aplicación lo permite).

En este tutorial vamos a explicar como mostrar menús cuando dejamos pulsado durante una duración de tiempo un control de la aplicación.La creación de estos menús son muy parecidos a los menús básicos pero tienen eventos diferentes. 

Para empezar creamos un nuevo XML para definir el menú, crearemos un primer menú que se mostrará cuando dejamos pulsado durante un largo tiempo en un TextView. 

12334








Una vez definido el XML con el menú contextual, iremos a nuestra Activity para definir el método de creación de los menús contextuales.Este método es compartido por todos los menús y dentro del método preguntamos por el control que hemos pulsado.Si coincide el control, inflamos el menú. 

22222





Por último solo tenemos que “enlazar” el método onCreateContextMenu con los controles que queremos que tengan menús contextuales. 

3

  


Si queremos averiguar que opción se ha pulsado de nuestro menú, tenemos que definir el método onContextItemSelected y preguntar por los ID que definimos en nuestro XML. 
5
    






Los menús contextuales se pueden aplicar también a los ListView. Crearemos un nuevo XML con el menú contextual para no mezclarlo con el menú del TextView.

85





Ahora modificaremos nuestros métodos onCreateContextMenu yonContextItemSelected.

Método onCreateContextMenu. 

42

  





Método onContextItemSelected. 
53
Rellenamos el ListView y enlazamos el menú contextual al ListView.  







El resutaldo seria algo como esto..

Menucontextual1









Menucontextual2










Descargar código fuente aquí.

¡Interferencia de bloqueo de anuncios detectada!


Wikia es un sitio libre de uso que hace dinero de la publicidad. Contamos con una experiencia modificada para los visitantes que utilizan el bloqueo de anuncios

Wikia no es accesible si se han hecho aún más modificaciones. Si se quita el bloqueador de anuncios personalizado, la página cargará como se esperaba.

También en FANDOM

Wiki al azar