Android开发之Menu和actionBar
一、通过Menu目录下创建一个布局文件:
先看代码meu/main.xml:
1 <?xml version="1.0" encoding="utf-8"?> 2 <menu xmlns:android="http://schemas.android.com/apk/res/android"> 3 <item android:id="@+id/setting1" 4 android:showAsAction="never" 5 android:orderInCategory="100" 6 android:title="@string/setting1"/> 7 <item android:id="@+id/setting2" 8 android:orderInCategory="100" 9 android:showAsAction="never" 10 android:title="@string/setting2"/> 11 </menu>
MainActivity:
1 @Override 2 public boolean onCreateOptionsMenu(Menu menu) { 3 getMenuInflater().inflate(R.menu.main,menu); 4 return super.onCreateOptionsMenu(menu); 5 } 6 7 @Override 8 public boolean onOptionsItemSelected(MenuItem item) { 9 switch (item.getItemId()){ 10 case R.id.setting1: Toast.makeText(this,"Setting1",Toast.LENGTH_SHORT).show(); 11 break; 12 case R.id.setting2: Toast.makeText(this,"Setting2",Toast.LENGTH_SHORT).show(); 13 break; 14 } 15 return super.onOptionsItemSelected(item); 16 }
1、orderInCategory属性:
actionbar里每个item的优先级,值越大优先级越低,actionbar地方不够就会放到overflow中
2、接下来介绍一下showAsAction属性:
(1)always:这个值会使菜单项一直显示在ActionBar上。
(2)ifRoom:如果有足够的空间,这个值会使菜单显示在ActionBar上。
(3)never:这个值菜单永远不会出现在ActionBar是。
(4)withText:这个值使菜单和它的图标,菜单文本一起显示。
下面是三种显示效果:
二、动态添加:
动态添加的代码如下:
1 @Override 2 public boolean onCreateOptionsMenu(Menu menu) { 3 menu.add(0,1,0,"后退"); 4 menu.add(0,2,0,"前进"); 5 return super.onCreateOptionsMenu(menu); 6 } 7 8 @Override 9 public boolean onOptionsItemSelected(MenuItem item) { 10 switch (item.getItemId()){ 11 case 1: 12 Toast.makeText(this,"退",Toast.LENGTH_SHORT).show(); 13 break; 14 case 2: 15 Toast.makeText(this,"进",Toast.LENGTH_SHORT).show(); 16 break; 17 } 18 return super.onOptionsItemSelected(item); 19 }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步