// 如下這個是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