// 如下这个是PopupMenu菜单,只是这里是经过按钮弹出来, // 要在res/文件夹下建立一个menu文件夹,再在里面建立一个布局文件 // popMenu菜单事件,我这里是经过按钮显示菜单 public void popMenu(View view) { // PopupMenu(context, anchor)参数:上下文、当前点击的对象即view,button PopupMenu popupMenu = new PopupMenu(this, view); getMenuInflater().inflate(R.menu.menu, popupMenu.getMenu()); // 设置事件 popupMenu.setOnMenuItemClickListener(new OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.menu_setting: Toast.makeText(MainActivity.this, "用户设置", Toast.LENGTH_SHORT).show(); break; case R.id.menu_exit: Toast.makeText(MainActivity.this, "用户退出", Toast.LENGTH_SHORT).show(); break; } return false; } }); popupMenu.show(); } //PopupMenu菜单的文件夹res/menu下的布局文件 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" > <!-- orderInCategory="1" 决定菜单选项排序 --> <!-- showAsAction="always"在顶部显示菜单键 --> <item android:id="@+id/menu_setting" android:orderInCategory="2" android:title="设置"> </item> <item android:id="@+id/menu_exit" android:orderInCategory="3" android:title="退出"> </item> <!-- 二级普通菜单: --> <item android:id="@+id/menu_color" android:orderInCategory="1" android:title="颜色设置"> <menu> <group> <item android:id="@+id/font_red" android:title="red"/> <item android:id="@+id/font_blue" android:title="blue"/> <item android:id="@+id/font_green" android:title="green"/> <item android:id="@+id/font_yellow" android:title="yellowed"> </item> </group> </menu> </item> <!-- 二级可选项菜单: --> <item android:id="@+id/menu_font" android:orderInCategory="1" android:title="字体设置"> <!-- checkableBehavior 属性有三个可选值: all 为多选, single 为单选, none 为不可选。为 none 时就是一个普通菜单 --> <menu> <group android:checkableBehavior="single" > <item android:id="@+id/font_20" android:title="20sp"/> <item android:id="@+id/font_30" android:title="30sp"/> <item android:id="@+id/font_40" android:title="40sp"/> <item android:id="@+id/font_50" android:title="50sp"> </item> </group> </menu> </item> </menu>
效果图:java