// 以下这个是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>
效果图: