Android的menu(菜单)按钮的使用(by星空武哥)
16lz
2021-01-26
未经允许禁止转载
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 ; } |
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.使用代码的方式创建菜单
//在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); } |
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 ; } |
更多相关文章
- 【转】Android中保存Activity的状态
- Android中的Service组件详解
- 实例讲解Android中ContentProvider组件的使用方法
- Android(安卓)实现类似美团的菜单效果
- Android(安卓)自定义 MarqueeView 实现跑马灯 —— 原理篇
- Android中,如何在其他类调用Activity的方法,适用于类似场景
- android 屏幕保持不锁屏
- Android实现新字体的引入(Typeface的使用)
- Android侧滑菜单之DrawerLayout用法详解