Belajar Membuat Menu Konteks di Android Studio


Assalamualaikum Warahmatullahi Wabarakatuh.

Menu Konteks (Context Menu) adalah salah satu fungsi yang bisa kita gunakan untuk menampilkan list/daftar menu pada suatu objek, dengan cara menekan objek selama beberapa saat, Menu Konteks menghadirkan pintasan perintah (Shortcut) pada sebuah item didalam aplikasi, misalnya digunakan untuk mengedit atau menghapus suatu item.


Banyak sekali aplikasi yang menggunakan Menu Konteks, untuk memudahkan user dalam memilih aksi, karena lebih cepat dan mudah, contohnya pada aplikasi pemutar musik, jika kita ingin menghapus file/musik pada aplikasi tersebut, kita hanya perlu menekannya hingga beberapa saat, maka setelah itu akan muncul menu berupa aksi yang bisa diguakan untuk menghapus, mengcopy, dsb.

Materi lainnya yang direkomenasikan:

Pada tutorial ini, kita akan belajar bagaimana cara membuat serta menggunakan Menu Konteks pada aplikasi android, untuk itu mari kita simak tutorial berikut ini.

Belajar Membuat Menu Konteks di Android Studio

Buka aplikasi Android Studio kalian, Buat Project Baru.

Buka file activity_main.xml pada project kalian, untuk contoh berikut ini, kita akan menggunakan sebuah Button, yang nantinya akan kita tambahkan Menu Konteks pada Button tersebut.
<?xml version="1.0" encoding="utf-8"?>
<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:layout_margin="8dp"
    android:background="#FFF5F5F5"
    tools:context="android.cianjur.developer.net.basicandroid.MainActivity">

    <Button
        android:id="@+id/konteks"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="Ini Hanya Contoh" />
    
</RelativeLayout>
Pada Button tersebut, nantinya akan menampilkan beberapa menu seperti, Salin, Hapus dan Edit. Untuk itu, disini kita perlu membuat menunya terlebih dahulu, caranya : Klik kanan pada direktori res > New > Android resource directory, seperti pada gambar berikut ini.


Selanjutnya pilih menu pada Resource type, lalu setelah itu klik Ok.


Disana akan telihat direktori baru bernama menu, klik kanan pada direkotr tersebut, pilih New > Menu resource file, lalu berinama, misalnya "contoh_menu".


Disini kita akan membuat sebuah menu dengan menggunakan kode xml, untuk membuatnya, kita perlu menambahkan tag <item> dan juga beberapa atribut tambahan lalinnya, seperti id, title, dsb.
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@+id/menu1"
        android:title="Salin"/>

    <item android:id="@+id/menu2"
        android:title="Hapus"/>

    <item android:id="@+id/menu3"
        android:title="Edit"/>

</menu>
Jika kalian sudah selesai membuat menu untuk kita tampilkan, selanjutnya kita buka file MainActivity.java. Masukan source code berikut ini:
package android.cianjur.developer.net.basicandroid;

/*
 Dibuat Oleh WILDAN M ATHOILLAH
 */

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button showMenu = findViewById(R.id.konteks);
        registerForContextMenu(showMenu);
    }

    //Method Ini digunakan untuk menginisialisasi menu yang akan kita gunakan
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        getMenuInflater().inflate(R.menu.contoh_menu, menu);
        super.onCreateContextMenu(menu, v, menuInfo);
    }

    //Method ini digunakan untuk menagani kejadian ketika Menu Konteks diklik
    @Override
    public boolean onContextItemSelected(MenuItem item) {
        switch (item.getItemId()){
            case R.id.menu1:
                Toast.makeText(getApplicationContext(), "Menyalin", Toast.LENGTH_SHORT).show();
                break;

            case R.id.menu2:
                Toast.makeText(getApplicationContext(), "Menghapus", Toast.LENGTH_SHORT).show();
                break;

            case R.id.menu3:
                Toast.makeText(getApplicationContext(), "Mengedit", Toast.LENGTH_SHORT).show();
                break;
        }
        return super.onContextItemSelected(item);
    }
}
Penjelasan:

Ada tiga langkah untuk menciptakan Konteks Menu, pertama kita harus mendaftarkan sebuah objek atau view yang ingin kita tambahkan Konteks Menu, menggunakan fungsi registerForContextMenu().

Kedua, kita perlu mengimplementasikan fungsi onCreateContextMenu(), yang digunakan untuk memasang menu yang sudah kita buat sebelumnya pada direkotri menu, yang bisa kita set pada method getMenuInflater.inflate(), dengan parameter, lokasi menu file menu yang akan ditampilkan dan instance menu konteks.

Ketiga, dengan menggunakan fungsi/method onContextItemSelected(), disini kita dapat menangani kejadian pada saat menu konteks diklik, disana kita menggunakan statement switch untuk menentukan kejadian pada masing-masing opsi dengan mendapatkan id pada setiap menu item, jika salah satu menu diklik, maka akan tampil pesan singkat menggunakan Toast.

Untuk menampilkan Menu Konteks, kita hanya perlu menekan Button tersebut beberapa saat.

Demo:



Terimakasih atas kunjungannya, semoga tutorial yang saya berikan bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.

Wassalamualaikum Warahmatullahi Wabarakatuh.

Wildan M Athoillah
Wildan M Athoillah Blogger dan spesialis pembuat aplikasi android.