Android開(kāi)發(fā)使用PopupMenu創(chuàng)建彈出式菜單完整實(shí)例
本文實(shí)例講述了Android開(kāi)發(fā)使用PopupMenu創(chuàng)建彈出式菜單。分享給大家供大家參考,具體如下:
簡(jiǎn)介:
PopupMenu 代表彈出式菜單,它會(huì)在指定組件上,默認(rèn)情況下,PopupMenu會(huì)顯示該組件,PopupMenu可增加多個(gè)菜單項(xiàng)。
實(shí)際效果:
具體實(shí)現(xiàn)部分:
首先是主活動(dòng)中的調(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對(duì)象 popupMenu = new PopupMenu(this, button); //將 R.menu.menu_main 菜單資源加載到popup中 getMenuInflater().inflate(R.menu.menu_main,popupMenu.getMenu()); //為popupMenu選項(xiàng)添加監(jiān)聽(tīng)器 popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()){ case R.id.plain_item: //隱藏對(duì)話框 popupMenu.dismiss(); break; default: Toast.makeText(MainActivity.this,"you clicked->" + item.getTitle(), Toast.LENGTH_SHORT).show(); } return true; } }); popupMenu.show(); } }
在布局文件中添加點(diǎn)擊事件:
<?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> <!--定義一組選項(xiàng)菜單--> <group android:checkableBehavior="single"> <!--定義多個(gè)菜單項(xiàng)--> <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> <!--定義一個(gè)普通菜單項(xiàng)--> <item android:id="@+id/plain_item" android:title="plain_item"/> <item android:title="font_color" android:icon="@drawable/seek03"> <menu> <!--定義一個(gè)普通選項(xiàng)菜單--> <group> <!--定義三個(gè)菜單項(xiàng)--> <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"> <!--定義一組單選菜單項(xiàng)--> <group android:checkableBehavior="single"> <!--定義三個(gè)菜單項(xiàng)--> <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)容感興趣的讀者可查看本站專(zhuān)題:《Android布局layout技巧總結(jié)》、《Android開(kāi)發(fā)入門(mén)與進(jìn)階教程》、《Android調(diào)試技巧與常見(jiàn)問(wèn)題解決方法匯總》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
- Android中選項(xiàng)菜單(OptionMenu)的創(chuàng)建方法
- 常見(jiàn)Android選項(xiàng)菜單樣式集合
- Android選項(xiàng)菜單用法實(shí)例分析
- Android實(shí)現(xiàn)菜單關(guān)聯(lián)activity的方法示例
- Android使用xml文件資源定義菜單實(shí)現(xiàn)方法示例
- Android仿QQ空間底部菜單示例代碼
- Android之用PopupWindow實(shí)現(xiàn)彈出菜單的方法詳解
- Android仿美團(tuán)下拉菜單(商品選購(gòu))實(shí)例代碼
- Android動(dòng)態(tài)添加menu菜單的簡(jiǎn)單方法
- Android開(kāi)發(fā)實(shí)現(xiàn)SubMenu選項(xiàng)菜單和子菜單示例
相關(guān)文章
Android 解決dialog彈出時(shí)無(wú)法捕捉Activity的back事件問(wèn)題
這篇文章主要介紹了Android 解決dialog彈出時(shí)無(wú)法捕捉Activity的back事件問(wèn)題的相關(guān)資料,需要的朋友可以參考下2016-11-11Android如何判斷一個(gè)點(diǎn)在不在多邊形區(qū)域內(nèi)
這篇文章主要為大家詳細(xì)介紹了Android判斷一個(gè)點(diǎn)在不在多邊形區(qū)域內(nèi)的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05Android 啟動(dòng) Service(startservice和bindservice) 兩種方式的區(qū)別
andrid service 兩種啟動(dòng)方式:第一種startservice,第二種bindservice,大家對(duì)這兩種啟動(dòng)方式的區(qū)別了解嗎,下面跟著小編一起學(xué)習(xí)吧2015-11-11android實(shí)現(xiàn)icon動(dòng)態(tài)旋轉(zhuǎn)效果
這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)icon動(dòng)態(tài)旋轉(zhuǎn)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07Android SDK Manager國(guó)內(nèi)無(wú)法更新的解決方案
本文主要介紹Android SDK Manager國(guó)內(nèi)無(wú)法更新的解決方案,這里提供了解決方法,及簡(jiǎn)單說(shuō)明實(shí)現(xiàn)流程,有興趣的小伙伴可以參考下2016-09-09Android gradle插件打印時(shí)間戳的方法詳解
這篇文章主要給大家介紹了關(guān)于Android gradle插件打印時(shí)間戳的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)各位Android開(kāi)發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09Android下的POS打印機(jī)調(diào)用的簡(jiǎn)單實(shí)現(xiàn)
本篇文章主要介紹了Android下的POS打印機(jī)調(diào)用的簡(jiǎn)單實(shí)現(xiàn),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-04-04詳解Android獲得系統(tǒng)GPU參數(shù) gl.glGetString
這篇文章主要介紹了詳解Android獲得系統(tǒng)GPU參數(shù) gl.glGetString的相關(guān)資料,需要的朋友可以參考下2017-07-07