Android里面也可用XML定义菜单资源,菜单分两种,一种是OptionMenu(点系统"Menu"键出来),另一种是ContextMenu必须长按才能出来;

optionMenu菜单的使用

1,创建选项菜单; onCreateOptionsMenu(Menu menu)

//创建选项菜单的方法@Overridepublic boolean onCreateOptionsMenu(Menu menu) {//menu.add(groupId, itemId, order, title) //goupid 菜单项所在组的标示符//itemid 唯一表示的ID//order  菜单栏项的显示顺序//title 菜单项相似的文本MenuItem menu1 = menu.add(0, 0, 0, "item1");menu1.setAlphabeticShortcut('a');//分配快捷键的方法menu1.setIcon(R.drawable.ic_launcher);//设置图标MenuItem menu2 = menu.add(0, 1, 1, "item2");menu1.setAlphabeticShortcut('b');//分配快捷键的方法menu1.setIcon(R.drawable.ic_launcher);//设置图标MenuItem menu3 = menu.add(0, 2, 2, "item3");menu1.setAlphabeticShortcut('c');//分配快捷键的方法menu1.setIcon(R.drawable.ic_launcher);//设置图标//使用简单方式创建三个菜单栏menu.add(0,4,4,"item4");menu.add(0,5,5,"item5");menu.add(0,6,6,"item6");return true;}

2,添加选项菜单的监听器onOptionsItemSelected(MenuItem item);

@Override//选项菜单的监听器public boolean onOptionsItemSelected(MenuItem item) {//MenuChoice方法接收Menuite方法的一个参数,并检查其ID确定被选中的菜单项int id = item.getItemId();switch (id) {case 0:Toast.makeText(this, "选中item1", 1000).show();break;case 1:Toast.makeText(this, "选中item2", 1000).show();break;case 2:Toast.makeText(this, "选中item3", 1000).show();break;case 4:Toast.makeText(this, "选中item4", 1000).show();break;case 5:Toast.makeText(this, "选中item5", 1000).show();break;case 6:Toast.makeText(this, "选中item6", 1000).show();break;}return false;}



ContextMenu菜单的使用;

上下文菜单的使用必须是长按才会出来

1,定义布局上下文菜单的布局文件menu_contextemnu.xml

<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android" >       <item        android:id="@+id/rename"       android:title="修改名字"       />   <item        android:id="@+id/dele"       android:title="删除"       />   <item        android:id="@+id/open"       android:title="打开"       />   <item        android:id="@+id/detailed"       android:title="详细"       /></menu>

2,定义主配置文件 acticity_main.xml

    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="@string/hello_world" />    <Button         android:id="@+id/btn"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:onClick="onclick"        android:text="上下文菜单"        />

3,java类的使用

//上下文菜单的使用public class MainActivity extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);this.setContentView(R.layout.activity_main);//获得按钮Button btn=(Button)this.findViewById(R.id.btn);btn.setOnCreateContextMenuListener(this);//上下文菜单的使用必须要先注册组件this.registerForContextMenu(btn);}      public void onclick(View v){          }@Override//创建上下文菜单public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {super.onCreateContextMenu(menu, v, menuInfo);  getMenuInflater().inflate(R.layout.menu_contextemnu, menu);  }@Override//创建上下文监听器public boolean onContextItemSelected(MenuItem item) {int id = item.getItemId();switch (id) {case R.id.rename:Toast.makeText(this, "重命名", 1000).show();break;case R.id.dele:Toast.makeText(this, "删除", 1000).show();break;case R.id.detailed:Toast.makeText(this, "详细", 1000).show();break;case R.id.open:Toast.makeText(this, "打开", 1000).show();break;}return false;}}


3, 选项菜单和上下文菜单监听器;

onMenuItemSelected可以同时使用在有少量的选项菜单和上下文的情况,下面一个方法就搞定, 如果出现上下文监听器(onContextItemSelected),选项监听器(onOptionsItemSelected) ,onMenuItemSelected 则只会执行onMenuItemSelected 监听器

 @Override // 菜单被选中的时候会执行 public boolean onMenuItemSelected(int featureId, MenuItem item) { // TODO Auto-generated method stub return true; }

更多相关文章

  1. Android基本控件和事件以及消息总结
  2. 淘宝(阿里百川)手机客户端开发日记第二篇 android首页之顶部轮播
  3. Android之菜单总结
  4. 新手android 开发 错误集锦(持续更新中)
  5. android menu菜单
  6. Android侧滑控件之DrawerLayout的使用
  7. 【新提醒】N820 N821 android 4.2 V1.1版 - 大V综合交流区 - 360
  8. 关于android的Menu理解
  9. android学习笔记36:消息提示

随机推荐

  1. 你真的理解android事件分发机制了吗
  2. Android(安卓)Handler详解
  3. Android(安卓)Robotium的几个小tips
  4. Android开发常见“疑难杂症”解决方案汇
  5. Android(安卓)项目编译过程
  6. Android(安卓)如何建立AIDL
  7. GalHttprequest类库简介——android平台
  8. Android文件系统深入剖析
  9. Android面试之----Android系统架构图及简
  10. Android之数据存储详解(二)之SQLite数据库