Creating a pop-up menu in Android Studio(Java)

 Creating a pop-up menu

A pop-up menu is attached to a view similar to the dropdown on a spinner.

Here is an example of the pop-up menu:-

Step 1: Create a new project in Android Studio.

Step 2: Create a new file in the res/menu directory called menu_popup.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:title="Reply"
        android:id="@+id/menu_reply"/>
    <item android:title="Reply All"
        android:id="@+id/menu_reply_all"/>
    <item android:title="Forward"
        android:id="@+id/menu_forward"/>
</menu>

Step 3: Create a new file in the res/layout directory called activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/open_pop_up"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Click to Open Popup Menu"
        android:textSize="20sp"
        android:textStyle="bold"
        android:clickable="true"
        android:onClick="showPopupMenu"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

Step 4: Create a new java file called MainActivity.java

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.PopupMenu;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    
    //Handle click event on TextView
    public void showPopupMenu(View view) {
        PopupMenu popupMenu = new PopupMenu(
                MainActivity.this,view);
        popupMenu.inflate(R.menu.menu_popup);
        popupMenu.setOnMenuItemClickListener(
                mOnMenuItemClickListener);
        popupMenu.show();
    }
    private final PopupMenu.OnMenuItemClickListener
            mOnMenuItemClickListener = item -> {
                // Handle menu selections items
                switch (item.getItemId()) {
                    case R.id.menu_reply:
                        Toast.makeText(MainActivity.this, "Reply", Toast.LENGTH_SHORT).show();
                        return true;
                    case R.id.menu_reply_all:
                        Toast.makeText(MainActivity.this,"Reply All",Toast.LENGTH_SHORT).show();
                        return true;
                    case R.id.menu_forward:
                        Toast.makeText(MainActivity.this, "Forward", Toast.LENGTH_SHORT).show();
                        return true;
                    default:
                        return false;
                }
            };
}


Post a Comment

0 Comments