Menú contextual en Android con ejemplo

En Android, hay tres tipos de menús disponibles para definir un conjunto de opciones y acciones en las aplicaciones de Android. Las listas de menús en las aplicaciones de Android son las siguientes:

  1. Menú de opciones de Android
  2. Menú contextual de Android
  3. Menú emergente de Android

Aquí, en este artículo, analicemos los detalles del menú contextual . En Android, el menú contextual es como un menú flotante y surge cuando el usuario ha presionado prolongadamente o hace clic en un elemento y es útil para implementar funciones que definen el contenido específico o el efecto del marco de referencia. El menú contextual de Android es similar al menú contextual de Windows o Linux. En el sistema Android, el menú contextual proporciona acciones que cambian un elemento específico o un marco contextual en la interfaz de usuario y se puede proporcionar un menú contextual para cualquier vista. El menú contextual no admitirá accesos directos a objetos ni iconos de objetos. qué

Ejemplo

Paso 1: Crear un nuevo proyecto

Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Java como lenguaje de programación.

Paso 2: trabajar con el archivo activity_main.xml

Abra res -> Diseño -> actividad_principal.xml y escriba el siguiente código. En este archivo, agregue solo un TextView para mostrar un texto simple.

XML

<?xml version="1.0" encoding="utf-8"?>
  
<!--Relative Layout to display all the details-->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/relLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#fff"
    android:padding="16dp"
    tools:context=".MainActivity">
  
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20dp"
        android:text="Long press me!"
        android:textColor="#000"
        android:textSize="20sp"
        android:textStyle="bold" />
  
</RelativeLayout>

Paso 3: trabajar con el archivo Mainactivity.java

Abra la aplicación -> Java -> Paquete -> archivo Mainactivity.java. En este paso, agregue el código para mostrar ContextMenu. Cada vez que la aplicación comience, haga un clic prolongado en un texto y muestre la cantidad de opciones para seleccionarlas para fines específicos. Se agregan comentarios dentro del código para comprender el código con más detalle. 

Java

import android.graphics.Color;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
  
public class MainActivity extends AppCompatActivity {
  
    TextView textView;
    RelativeLayout relativeLayout;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // Link those objects with their respective id's
        // that we have given in .XML file
        textView = (TextView) findViewById(R.id.textView);
        relativeLayout = (RelativeLayout) findViewById(R.id.relLayout);
  
        // here you have to register a view for context menu
        // you can register any view like listview, image view,
        // textview, button etc
        registerForContextMenu(textView);
  
    }
  
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        // you can set menu header with title icon etc
        menu.setHeaderTitle("Choose a color");
        // add menu items
        menu.add(0, v.getId(), 0, "Yellow");
        menu.add(0, v.getId(), 0, "Gray");
        menu.add(0, v.getId(), 0, "Cyan");
    }
  
    // menu item select listener
    @Override
    public boolean onContextItemSelected(MenuItem item) {
  
        if (item.getTitle() == "Yellow") {
            relativeLayout.setBackgroundColor(Color.YELLOW);
        } else if (item.getTitle() == "Gray") {
            relativeLayout.setBackgroundColor(Color.GRAY);
        } else if (item.getTitle() == "Cyan") {
            relativeLayout.setBackgroundColor(Color.CYAN);
        }
  
        return true;
    }
}

Salida: ejecutar en el emulador

Ahora conecte el dispositivo con un cable USB o en un emulador e inicie la aplicación. El usuario verá un texto. Ahora, al presionar prolongadamente el texto, se generarán opciones de menú y se seleccionará una de ellas para realizar una funcionalidad específica.

Publicación traducida automáticamente

Artículo escrito por priyanshdhaketa14 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *