PopupMenu代表弹出式菜单,它会在指定组件上弹出PopupMenu,默认情况下,PopupMenu会显示在该组件的下方或上方。PopupMenu可增加多个菜单项,并可为菜单项增加子菜单。

使用PopupMenu创建菜单的步骤非常简单,只要如下步骤即可。

  1. 调用new PopupMenu(Context context,View anchor)创建下拉菜单,anchor代表要激发该弹出菜单的组件。
  2. 调用MenuInflater的inflate()方法将菜单资源填充到PopupMenu中。
  3. 调用PopupMenu的show()方法显示弹出式菜单。

下面的实例示范了使用PopupMenu的功能和用法。

界面布局文件如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:onClick="onPopupButtonClick"
android:text="单击我" />
</LinearLayout>

该实例的Activity的代入如下:

package org.crazyit.helloworld;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.PopupMenu;
import android.widget.Toast; public class PopupMenuTest extends Activity { PopupMenu popup=null; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.popup_menu_test);
} public void onPopupButtonClick(View button)
{
//创建PopupMenu对象
popup=new PopupMenu(this,button);
//将R.menu.popup_menu菜单资源加载到popup菜单中
getMenuInflater().inflate(R.menu.popup_menu,popup.getMenu());
//为popup菜单的菜单项单击事件绑定事件监听器
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener(){ @Override
public boolean onMenuItemClick(MenuItem item) {
switch(item.getItemId())
{
case R.id.exit:
//隐藏该对话框
popup.dismiss();
break;
default:
//使用Toast显示用户单击的菜单项
Toast.makeText(PopupMenuTest.this, "您单击了【"+item.getTitle()+"】菜单项",Toast.LENGTH_SHORT).show(); }
// TODO Auto-generated method stub
return false;
} });
popup.show();
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.popup_menu_test, menu);
return true;
} }

上面的程序中第一行粗体字代码创建了一个PopupMenu对象,第二行粗体字代码指定将该R.menu.popup_menu菜单资源文件填充到PopupMenu中,这样即可实现当用户单击界面按钮时弹出Popup菜单。

运行上面程序将看到如下效果:

最新文章

  1. JS性能优化
  2. Java面试连环炮问题收集记录贴【JVM方面】
  3. SqlServer时间戳与普通格式的转换
  4. jquery获取关于宽度和高度的尺寸问题
  5. 关于Kean博客的学习
  6. JavaScript - BOM
  7. JS预览图像
  8. Delphi 在任务栏隐藏程序图标
  9. cocos2d-x教程1 hello world
  10. CentOS在线升级内核
  11. mysql DML DDL DCL
  12. 我的Java设计模式-观察者模式
  13. SharePoint 2010 -- .Net托管客户端模型简单示例
  14. SpringBoot2.0 项目异常日志,但不影响运行(待解决)
  15. redis五种数据类型和常用命令及适用场景
  16. python框架之Django(1)-第一个Django项目
  17. Java并发编程:Java创建线程的三种方式
  18. [ModemManger]ModemManger的取消
  19. RecyclerView中设置match_parent无效;
  20. kettle实现简单的增量同步

热门文章

  1. spring,hibernate配置事务 beans.xml
  2. io scheduler
  3. 关于tomcat配置MyEclipse项目的配置代码
  4. 设计一个 iOS 控件
  5. Kali渗透测试学习
  6. Posix消息队列实现机制
  7. 基于Verilog HDL 的数字电压表设计
  8. JS对象引用
  9. 拓扑排序的经典题目 UVA1572
  10. webView缩放