Android Popup Menu的使用方法
来源:互联网 发布:淘宝开店的费用明细 编辑:程序博客网 时间:2024/05/17 05:14
1. 概述
弹出式菜单是和某个View关联在一起的,Android会根据这个View的位置,自动确定弹出式菜单的显示位置。
创建弹出式菜单的步骤如下:
- PopupMenu popupMenu = new PopupMenu(context, view);
- Menu menu = popupMenu.getMenu();
- popupMenu.getMenuInflater().inflate(resId, menu);
- popupMenu.setOnMenuItemClickListener(xxxxx);
- popupMenu.show();
2. 示例
2.1 Java代码
package com.example.hellopopupmenu;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuInflater;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.PopupMenu;import android.widget.PopupMenu.OnMenuItemClickListener;import android.widget.Toast;public class MainActivity extends Activity {private Button button = null;private Toast toast = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.hello_popup_menu_main); button = (Button) this.findViewById(R.id.button); button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {showPopupMenu();} }); }private void showPopupMenu() {PopupMenu popupMenu = new PopupMenu(this, button);Menu menu = popupMenu.getMenu();MenuInflater inflater = popupMenu.getMenuInflater();inflater.inflate(R.menu.popup_menu, menu);popupMenu.setOnMenuItemClickListener(new OnMenuItemClickListener() {@Overridepublic boolean onMenuItemClick(MenuItem item) {switch (item.getItemId()) {case R.id.item01:showToast("item01");return true;case R.id.item02:showToast("item02");return true;case R.id.item03_01:showToast("item03_01");return true;case R.id.item03_02:showToast("item03_02");return true;default:return false;}}});popupMenu.show();}private void showToast(String string) {if (toast == null) {toast = Toast.makeText(this, "", Toast.LENGTH_SHORT);}toast.setText(string);toast.show();}}
2.2 布局文件
<?xml version="1.0" encoding="utf-8"?><!-- hello_popup_menu_main.xml --><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/button" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/button_text"/></LinearLayout>
2.3 菜单资源
<?xml version="1.0" encoding="utf-8"?><!-- popup_menu.xml --><menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/item01" android:title="@string/item01"/> <item android:id="@+id/item02" android:title="@string/item02"/> <item android:id="@+id/item03" android:title="@string/item03"> <menu><item android:id="@+id/item03_01" android:title="@string/item03_01"/> <item android:id="@+id/item03_02" android:title="@string/item03_02"/></menu></item></menu>
2.4 字符串资源
<string name="button_text">Show a PopupMenu</string><string name="item01">item01</string><string name="item02">item02</string><string name="item03">item03</string><string name="item03_01">item03_01</string><string name="item03_02">item03_02</string>
0 0
- Android Popup Menu的使用方法
- Android Menu:使用Popup Menu
- Android menu的使用方法
- Android系统五种常用的 Menu!OptionMenu/ContextMenu/Actionbar/Contextual aciton mode/popup menu
- Android:Android V7 Support Library Popup Menu
- Android Menus II-Popup Menu和Menu Groups
- Android Floating Context Menu的使用方法
- VS2010(MFC)添加POPUP MENU的方法
- Menu的基本使用方法
- A popup menu
- ASP.NET中Popup控件的使用方法
- Asp.net中的Popup控件的使用方法
- Android Menu,OptionMenu选项菜单,ContextMenu上下文菜单,Contextual ActionMode,PopUp Menu,PopU pWi ndow
- android PopUp window的使用
- 传统menu的使用方法总结
- ActionBar上面添加popup menu
- Popup menu with nice title
- Popup menu VS2005中使用
- getClass(),class属性和getName()解析
- ASCII详解
- 在windows xp下安装ubuntu-14.04.1-server(无U盘、光盘)
- OpenCV基础篇之使用CMake管理工程
- 求区间和问题(水题)
- Android Popup Menu的使用方法
- Java的前台线程与守护线程(后台线程)
- OpenCV基础篇之查找表
- Symfony2 教程 第一天
- 重叠I/O
- 设计模式之代理模式
- hdu5015 233 Matrix 矩阵快速幂 矩阵构造方法
- CentOS上编译安装OpenCV-2.3.1与ffmpeg-2.1.2
- HDU_ACM-2022 海选女主角[矩阵求最值]