Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Android / Crear PopupMenu (Ventana Emergente)

Crear PopupMenu (Ventana Emergente)

Por jc mouse lunes, enero 5, 2015

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

Popup menu android

Enjoy!

Tags

Artículos similares

Tabla con imagen de fondo en Java

En este post personalizaremos una tabla JTable Swing para pintar una imagen de fondo y darle un poco de estilo al e[...]

Multiplicación de matrices en Kotlin

En este post implementaremos el código necesario para multiplicar matrices con el lenguaje Kotlin, pero para realizar es[...]

5 apps gratuitas para aprender idiomas

El confinamiento causado por el covid-19, son una gran oportunidad para realizar varias actividades en casa y desde casa[...]

Biblioteca java para leer/escribir Metadatos

En posts anteriores hablamos sobre los metadatos y el porque son importantes en la Seguridad Informática, vimos el manej[...]

Personaliza JTable «MetroUI»

Un JTable es un componente swing de java que nos permite presentar datos en forma tabular, si bien haciendo uso de IDe[...]

Conoce App Denuncia: La aplicación boliviana para frenar la corrupción policial

La Policía Boliviana lanza su propia aplicación móvil que está destinada para denunciar hechos de corrupción dentro de l[...]