未经允许禁止转载

Android的菜单按钮

1.使用xml的方式创建菜单项

a.在res下的menu目录下新建一个main.xml文件,以menu为根节点,添加一个item就是菜单项
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 < menu xmlns:android = "http://schemas.android.com/apk/res/android" > < item android:id = "@+id/action_go" android:orderInCategory = "1" android:title = "前进" /> < item android:id = "@+id/action_back" android:orderInCategory = "2" android:title = "后退" /> < item android:id = "@+id/action_refresh" android:orderInCategory = "3" android:title = "刷新" /> </ menu >

b.在Activity中复写onCreateOptionsMenu方法,将一个资源转换成menu对象

1 2 3 4 5 6 7 8 //该方法用来初始化当前Activity的菜单项 @Override public boolean onCreateOptionsMenu(Menu menu) { //1.使用菜单填充器将一个菜单资源设置给menu对象 getMenuInflater().inflate(R.menu.main, menu); return true ; }
c.如果想要让菜单项有点击效果,需要复写Activity的onMenuItemSelected方法,然后去获取id,进行id的对比。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 //要想对菜单项设置点击事件需要复写一个方法 @Override public boolean onMenuItemSelected( int featureId, MenuItem item) { //获取当前点击的菜单项的Id switch (item.getItemId()) { case R.menu.action_back​ : Toast.makeText(getApplicationContext(), "后退" , 0 ).show(); break ; case R.menu.action_go : Toast.makeText(getApplicationContext(), "前进" , 0 ).show(); break ; case R.menu.refresh : Toast.makeText(getApplicationContext(), "刷新" , 0 ).show(); break ; } return super .onMenuItemSelected(featureId, item); }

2.使用代码的方式创建菜单


2.1使用代码的方式来添加菜单选项,我们就不用创建xml文件了,直接在 onCreateOptionsMenu()方法中用menu.add()来添加菜单选项,其他的都不变。
//在Activity中复写onCreateOptionsMenu方法,代码添加一个menu的选项groupid:item所在的分组itemId:选项idorder:顺序 title:文本
menu.add(1, 0, 1, "前进");


1 2 3 4 5 6 7 8 9 10 11 @Override public boolean onCreateOptionsMenu(Menu menu) { /* //1.使用菜单填充器将一个菜单资源设置给menu对象 getMenuInflater().inflate(R.menu.main, menu);*/ //2.使用代码添加菜单项 groupId:分组Id itemId:菜单项的Id orderId:菜单顺序 title: menu.add( 0 , 0 , 1 , "前进" ); menu.add( 0 , 1 , 2 , "后退" ); menu.add( 0 , 2 , 3 , "刷新1" ); return true ; }

2.2 在点击菜单选项的时候我们应该改成,与add()方法添加的itemId 所对应。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 @Override public boolean onMenuItemSelected( int featureId, MenuItem item) { //获取当前点击的菜单项的Id switch (item.getItemId()) { case 1 : Toast.makeText(getApplicationContext(), "后退" , 0 ).show(); break ; case 0 : Toast.makeText(getApplicationContext(), "前进" , 0 ).show(); break ; case 2 : Toast.makeText(getApplicationContext(), "刷新" , 0 ).show(); break ; } return super .onMenuItemSelected(featureId, item); }



3.屏蔽系统的菜单,弹出自己的dialog
a.当menu按键点击时回调用onMenuOpend方法,会调用父类的防范返回一个true,我们可以直接返回false.不去调用系统的菜单
b.我们可以在该方法中定义我们自己的Dialog
1 2 3 4 5 6 7 8 9 10 11 /**当点击菜单按键时调用*/ @Override public boolean onMenuOpened( int featureId, Menu menu) { AlertDialog.Builder builder = new Builder( this ); builder.setTitle( "aa" ); builder.setMessage( "bbb" ); builder.show(); return false ; }



更多相关文章

  1. 【转】Android中保存Activity的状态
  2. Android中的Service组件详解
  3. 实例讲解Android中ContentProvider组件的使用方法
  4. Android(安卓)实现类似美团的菜单效果
  5. Android(安卓)自定义 MarqueeView 实现跑马灯 —— 原理篇
  6. Android中,如何在其他类调用Activity的方法,适用于类似场景
  7. android 屏幕保持不锁屏
  8. Android实现新字体的引入(Typeface的使用)
  9. Android侧滑菜单之DrawerLayout用法详解

随机推荐

  1. Android系统自带样式(android:theme)(stephe
  2. Android之屏幕切换使用技巧
  3. android 中 涉及到context的时候this和th
  4. Android:常见错误提示
  5. 【Android】Android(安卓)联系人数据库浅
  6. 第一次写博客,先上传一下平常开发android
  7. Android(安卓)中屏幕点击事件的实现
  8. Android(安卓)Studio v0.1尝鲜
  9. java websocket client ssl(wss)
  10. ADT在线安装(http://dl-ssl.google.com/an