Android開發(fā)使用PopupMenu創(chuàng)建彈出式菜單完整實例
本文實例講述了Android開發(fā)使用PopupMenu創(chuàng)建彈出式菜單。分享給大家供大家參考,具體如下:
簡介:
PopupMenu 代表彈出式菜單,它會在指定組件上,默認(rèn)情況下,PopupMenu會顯示該組件,PopupMenu可增加多個菜單項。
實際效果:
具體實現(xiàn)部分:
首先是主活動中的調(diào)用:
public class MainActivity extends Activity { PopupMenu popupMenu = null ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onPopupButtonClick(View button){ //創(chuàng)建PopupMenu對象 popupMenu = new PopupMenu(this, button); //將 R.menu.menu_main 菜單資源加載到popup中 getMenuInflater().inflate(R.menu.menu_main,popupMenu.getMenu()); //為popupMenu選項添加監(jiān)聽器 popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()){ case R.id.plain_item: //隱藏對話框 popupMenu.dismiss(); break; default: Toast.makeText(MainActivity.this,"you clicked->" + item.getTitle(), Toast.LENGTH_SHORT).show(); } return true; } }); popupMenu.show(); } }
在布局文件中添加點擊事件:
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:id="@+id/txt" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="onPopupButtonClick" android:text="click here to text PopupMenu" android:textSize="25dp"/> </android.support.constraint.ConstraintLayout>
菜單的布局文件:
一、在 /res 下建立 /menu文件夾
二、在menu文件夾下建立:menu_main.xml:
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:title="@string/app_name" android:icon="@drawable/seek02"> <menu> <!--定義一組選項菜單--> <group android:checkableBehavior="single"> <!--定義多個菜單項--> <item android:id="@+id/font_10" android:title="font_10"/> <item android:id="@+id/font_12" android:title="font_12"/> <item android:id="@+id/font_14" android:title="font_14"/> <item android:id="@+id/font_16" android:title="font_16"/> <item android:id="@+id/font_18" android:title="font_18"/> </group> </menu> </item> <!--定義一個普通菜單項--> <item android:id="@+id/plain_item" android:title="plain_item"/> <item android:title="font_color" android:icon="@drawable/seek03"> <menu> <!--定義一個普通選項菜單--> <group> <!--定義三個菜單項--> <item android:id="@+id/red_font" android:title="red_title"/> <item android:id="@+id/green_font" android:title="red_title"/> <item android:id="@+id/blue_font" android:title="red_title"/> </group> </menu> </item> </menu>
三、在menu文件夾下建立:context.xml
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <!--定義一組單選菜單項--> <group android:checkableBehavior="single"> <!--定義三個菜單項--> <item android:id="@+id/red" android:title="red_title" android:alphabeticShortcut="r"/> <item android:id="@+id/green" android:title="red_title" android:alphabeticShortcut="g"/> <item android:id="@+id/blue" android:title="red_title" android:alphabeticShortcut="b"/> </group> </menu>
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android布局layout技巧總結(jié)》、《Android開發(fā)入門與進階教程》、《Android調(diào)試技巧與常見問題解決方法匯總》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計有所幫助。
相關(guān)文章
Android 解決dialog彈出時無法捕捉Activity的back事件問題
這篇文章主要介紹了Android 解決dialog彈出時無法捕捉Activity的back事件問題的相關(guān)資料,需要的朋友可以參考下2016-11-11Android如何判斷一個點在不在多邊形區(qū)域內(nèi)
這篇文章主要為大家詳細(xì)介紹了Android判斷一個點在不在多邊形區(qū)域內(nèi)的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05Android 啟動 Service(startservice和bindservice) 兩種方式的區(qū)別
andrid service 兩種啟動方式:第一種startservice,第二種bindservice,大家對這兩種啟動方式的區(qū)別了解嗎,下面跟著小編一起學(xué)習(xí)吧2015-11-11android實現(xiàn)icon動態(tài)旋轉(zhuǎn)效果
這篇文章主要為大家詳細(xì)介紹了android實現(xiàn)icon動態(tài)旋轉(zhuǎn)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-07-07Android SDK Manager國內(nèi)無法更新的解決方案
本文主要介紹Android SDK Manager國內(nèi)無法更新的解決方案,這里提供了解決方法,及簡單說明實現(xiàn)流程,有興趣的小伙伴可以參考下2016-09-09Android下的POS打印機調(diào)用的簡單實現(xiàn)
本篇文章主要介紹了Android下的POS打印機調(diào)用的簡單實現(xiàn),非常具有實用價值,需要的朋友可以參考下2017-04-04詳解Android獲得系統(tǒng)GPU參數(shù) gl.glGetString
這篇文章主要介紹了詳解Android獲得系統(tǒng)GPU參數(shù) gl.glGetString的相關(guān)資料,需要的朋友可以參考下2017-07-07