Android中创建PopupMenu弹出式菜单

采得百花成蜜后,为谁辛苦为谁甜。这篇文章主要讲述Android中创建PopupMenu弹出式菜单相关的知识,希望能为你提供帮助。
之前写过一篇创建option menu的文章:Android中创建option menu
本文主要是讲如何创建PopupMenu弹出式菜单
1、首先创建menu文件menu2.xml:

< ?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" /> < /menu>

这个menu2.xml菜单文件在Android Studio工具中可以通过可视化界面创建,拖两个Menu Item到界面中即可
Android中创建PopupMenu弹出式菜单

文章图片

 
2、创建Activity活动
界面上放一个按钮,点击按钮时填出菜单
activity_main.xml:
< ?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=".MainActivity"> < Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> < /android.support.constraint.ConstraintLayout>

 
MainActivity.java
package com.example.chenrui.app1; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.PopupMenu; import android.widget.Toast; public class MainActivity extends AppCompatActivity {@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button = findViewById(R.id.button1); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { PopupMenu popupMenu = new PopupMenu(MainActivity.this,v); popupMenu.getMenuInflater().inflate(R.menu.menu2,popupMenu.getMenu()); //弹出式菜单的菜单项点击事件 popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {@Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.item1: Toast.makeText(MainActivity.this, "item 1 click.", Toast.LENGTH_SHORT).show(); break; case R.id.item2: Toast.makeText(MainActivity.this, "item 2 click.", Toast.LENGTH_SHORT).show(); } return false; } }); //弹出式菜单的菜单的关闭事件 popupMenu.setOnDismissListener(new PopupMenu.OnDismissListener() { @Override public void onDismiss(PopupMenu menu) { Toast.makeText(MainActivity.this, "menu close.", Toast.LENGTH_SHORT).show(); } }); popupMenu.show(); } }); } } 

 
显示的效果:
Android中创建PopupMenu弹出式菜单

文章图片

【Android中创建PopupMenu弹出式菜单】 

    推荐阅读