En este tutorial crearemos una aplicación android que nos permitirá abrir un PopupMenu de donde podremos seleccionar una acción y ejecutar esa acción.
¿Qué es un Popup Menú?
Un PopupMenu en android muestra un menú en una «ventana emergente» modal anclado a una View. El menu emergente aparece debajo de la vista de anclaje si hay espacio, o encima de ella si no la hay. Esta ventana desaparece cuando se toca fuera del componente que lo llama.
Necesitas: Eclipse con SDK Android instalado
Nivel: Principiante
Tiempo: 10 minuto
Paso 1. Crea una nueva aplicación android llamado «Demo PopupMenu» deja como esta la Activity que crea por defecto «activity_main.xml»
* importante con SDK mínimo de API 11: Android 3.0 (Honeycomb)
Paso 2. Crear el menu en XML
Crea un nuevo archivo XML en RES/MENU con el nombre de «my_popupmenu.xml«, el código para el menú es:
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/action_one" android:title="Accion1"/> <item android:id="@+id/action_two" android:title="Accion2"/> <item android:id="@+id/action_three" android:title="Accion3"/> </menu>
Paso 3. Nuestro interfaz principal «activity_main.xml» solo tendrá un botón, el XML es:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <Button android:id="@+id/btnShowPMenu" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="46dp" android:text="Ver Popup Menu" /> </RelativeLayout>
Paso 4. Código
Abre MainActivity.java
package com.bolivia.demopopupmenu; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.PopupMenu; import android.widget.Toast; public class MainActivity extends Activity { private Button btnShowPMenu; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //nuevo codigo btnShowPMenu = ( Button )findViewById( R.id.btnShowPMenu ); btnShowPMenu.setOnClickListener( new View.OnClickListener() { public void onClick(View view) { popupMenu(); }}); }//end:onCreate @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } /** Popup Menu */ private void popupMenu() { //Crea instancia a PopupMenu PopupMenu popup = new PopupMenu(this, btnShowPMenu); popup.getMenuInflater().inflate(R.menu.my_popupmenu , popup.getMenu()); //registra los eventos click para cada item del menu popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { public boolean onMenuItemClick(MenuItem item) { if (item.getItemId() == R.id.action_one) { Toast.makeText(MainActivity.this, "Ejecutar : " + item.getTitle() ,Toast.LENGTH_SHORT).show(); } else if (item.getItemId() == R.id.action_two) { Toast.makeText(MainActivity.this, "Ejecutar : " + item.getTitle() ,Toast.LENGTH_SHORT).show(); } else if (item.getItemId() == R.id.action_three) { Toast.makeText(MainActivity.this, "Ejecutar : " + item.getTitle() ,Toast.LENGTH_SHORT).show(); } return true; } }); popup.show(); } }//end:MainActivity
Ejecuta
Enjoy!
Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.
Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye
Enjoy! :)
¿Quien no ha querido programar un juego? creo que la mayoría si no es que todos los que conocen de programación sin impo...
EL 6 de agosto de cada año se recuerda una de las fechas más importantes de la historia boliviana, porque el 6 de Agosto...
JTable es un componente swing java que nos permite mostrar datos en una tabla de una base de datos, sin embargo a difere...
Continuando con el estudio del meta lenguaje XML (Lenguaje de Marcado Extensible) bastante utilizado en el intercambio d...
Un Action Provider es un elemento que habita en la Action Bar para incrementar la accesibilidad de nuestras aplicaciones...
Cuando desarrollamos aplicaciones en java con base de datos debemos tener cuidado en que se cumplan un conjunto de carac...
Si trabajas con redes sociales (RRSS) a continuación te muestro tres herramintas gratuitas que te ayudaran a la hora de...
Por lo general se usan transacciones a nivel base de datos y posteriormente se llaman estos a través de procedimientos a...
En este post, aprenderemos como conectar Visual Basic 6 con SQL Server, abrir una tabla, leer su contenido y mostrar est...
Lo que veremos en este post es la configuración del driver para PHP de SQL Server que ha creado Microsoft el cual permit...