Android中创建PopupMenu弹出式菜单
Posted 魔豆的BLOG<
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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到界面中即可
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弹出式菜单的主要内容,如果未能解决你的问题,请参考以下文章
像在 ICS 中一样在 android 2.x 中创建下拉菜单的最佳方法
android中RecyclerView控件实现长按弹出PopupMenu菜单功能