本文實例講述了Android開發使用PopupMenu創建彈出式菜單。分享給大家供大家參考,具體如下:
簡介:
PopupMenu 代表彈出式菜單,它會在指定組件上,默認情況下,PopupMenu會顯示該組件,PopupMenu可增加多個菜單項。
實際效果:
具體實現部分:
首先是主活動中的調用:
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){ //創建PopupMenu對象 popupMenu = new PopupMenu(this, button); //將 R.menu.menu_main 菜單資源加載到popup中 getMenuInflater().inflate(R.menu.menu_main,popupMenu.getMenu()); //為popupMenu選項添加監聽器 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>
希望本文所述對大家Android程序設計有所幫助。
新聞熱點
疑難解答