activity_main.xmlpopup_menu.xmlMainActivity.java
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.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="com.example.application.popupproject.MainActivity"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="showPopup" android:text="show popup" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </android.support.constraint.ConstraintLayout>
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/item1" android:title="Item 1" /> <item android:id="@+id/item2" android:title="Item 2" /> <item android:id="@+id/item3" android:title="Item 3" /> <item android:id="@+id/item4" android:title="Item 4" /> </menu>
package com.example.application.popupproject; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.PopupMenu; import android.view.MenuItem; import android.view.View; import android.widget.Toast; public class MainActivity extends AppCompatActivity implements PopupMenu.OnMenuItemClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void showPopup(View v) { PopupMenu popup = new PopupMenu(this, v); popup.setOnMenuItemClickListener(this); popup.inflate(R.menu.popup_menu); popup.show(); } @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.item1: Toast.makeText(this, "Item 1 clicked", Toast.LENGTH_SHORT).show(); return true; case R.id.item2: Toast.makeText(this, "Item 2 clicked", Toast.LENGTH_SHORT).show(); return true; case R.id.item3: Toast.makeText(this, "Item 3 clicked", Toast.LENGTH_SHORT).show(); return true; case R.id.item4: Toast.makeText(this, "Item 4 clicked", Toast.LENGTH_SHORT).show(); return true; default: return false; } } }