Android4.0 -- UI控件之 Menu 菜单的的使用(四)
2013-08-22 23:40
435 查看
2. PopupMenu 菜单的使用
1) PopupMenu 介绍
创建弹出菜单,它一般会在view的上边或者下边弹出菜单[具体看是否有空间],注意弹出菜单是api在11或者更高版本中使用
如果你在XML文件中定义了你的菜单,你就可以通过以下步骤来显示弹出菜单了:
1. 实例化一个 PopupMenu 通过它的构造方法,这样就可以把当前应用的 context 和 view 传给所定义的菜单了
2. 使用 MenuInflater 来加载菜单资源,通过 PopupMenu.getMenu() 得到一个 Menu 对象,如果是在 API 14 或者更高级,你可以通过 PopupMenu.inflate() 来代替了。
3. 调用 PopupMenu.show()。
2) 程序实现
1) 布局文件 activity_main.xml 只是定义一个按钮,这里就不再粘贴了。
2) 菜单定义文件 目录:res/menu 下 main.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/share" android:orderInCategory="100" android:showAsAction="never" android:title="Share"/> <item android:id="@+id/edit" android:orderInCategory="100" android:showAsAction="never" android:title="Edit"/> <item android:id="@+id/delete" android:orderInCategory="100" android:showAsAction="never" android:title="Delete"/> </menu>
3) 程序主要代码
public class MainActivity extends Activity { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initComponent(); //这种就不需要长按事件 button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //当前这个v就是 button2控件 PopupMenu popupMenu = new PopupMenu(MainActivity.this, v); popupMenu.setOnMenuItemClickListener(new OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { // TODO Auto-generated method stub switch (item.getItemId()) { case R.id.edit: Toast.makeText(MainActivity.this, "Edit", 3).show(); break; case R.id.share: Toast.makeText(MainActivity.this, "share", 3).show(); break; case R.id.delete: Toast.makeText(MainActivity.this, "delete", 3).show(); break; } return false; } }); MenuInflater inflater = popupMenu.getMenuInflater(); inflater.inflate(R.menu.main, popupMenu.getMenu()); popupMenu.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.main, menu); return true; } private void initComponent(){ button = (Button)findViewById(R.id.button1); } }
3) 执行结果
![](http://images.cnitblog.com/blog/449101/201308/22233951-d0e545cae7db491fa63f5168f15654bf.jpg)
详情参考:http://developer.android.com/guide/topics/ui/menus.html
相关文章推荐
- Android4.0 -- UI控件之 Menu 菜单的的使用(一)
- Android4.0 -- UI控件之 Menu 菜单的的使用(三)
- Android4.0 -- UI控件之 Menu 菜单的的使用(二)
- 【Android 开发】:UI控件之 Menu 菜单的的使用(三)
- 【Android 开发】:UI控件之 Menu 菜单的的使用(一)
- 【Android 开发】:UI控件之 Menu 菜单的的使用(二)
- Android 菜单(Menu)控件的使用
- iOS开发-UI控件:使用TableView实现多级树型menu
- 菜单Menu与UI控件---Day02 2014 06 04
- Android-高级UI控件_Menu菜单
- HoverMenuExtender(滑出菜单) 控件的使用
- Android 菜单(Menu)控件的使用
- emWin 2天速成实例教程010_Menu标题菜单控件使用方法
- Android UI控件详解-Menu(菜单)
- 在对话框里面使用ON_UPDATE_COMMAND_UI映射工具条(toolbar和菜单(menu)的心得
- google的galaxy nexus没有MENU菜单键的原因,android4.0以上google不推荐使用菜单
- AjaxControlToolkit 微软出的ajax.net 工具使用教程十二 HoverMenuExtender(滑出菜单) 控件的使用
- google的galaxy nexus没有MENU菜单键的原因,android4.0以上google不推荐使用菜单
- UI控件之菜单(Menu)
- listcontrol 使用MENU菜单 复制列表控件某行某列到剪贴板